用数据库实现通讯录(删除和搜索联系人)

来源:互联网 发布:软件著作权查询网站 编辑:程序博客网 时间:2024/05/29 16:00

要记得传数据库的句柄db
remove 函数其实就包括research 函数;
感觉可以直接调用那个函数比较简约。
细节问题还有待修改;
功能已经实现。
over

void remove_contact(sqlite3 *db)
{
int i,j;
int ret;
int row,column;
char flag;
char s_name[MAX_SIZE];
int s_id;
char sql[MAX_SIZE];
char sql_1[MAX_SIZE];

printf("please put int the name:\n");scanf("%s",s_name);getchar();  sprintf(sql,"select * from contact where name = '%s';",s_name);ret = sqlite3_get_table(db,sql,&result,&row,&column,&errmsg);if(ret){    printf("search failed!\n");}else{    for(i = 0; i <= row; i++)    {        for(j = 0; j < column; j++)        {            printf("%s|",result[i * column + j]);        }        printf("\n");    }}sqlite3_free_table(result);if(ret == 0){printf("choose the id you want to remove:\n");scanf("%d",&s_id);getchar();sprintf(sql_1,"delete from contact where id = '%d';",s_id);ret = sqlite3_exec(db,sql_1,0,0,&errmsg);if(ret){    printf("delete failed!\n");}else{    printf("delete success!\n");}}printf("Do you want to continue? y or n.\n");scanf("%c",&flag);getchar();while((flag != 'y') && (flag != 'n')){    printf("please put in again\n");    scanf("%c",&flag);    getchar();}if(flag == 'y'){    remove_contact(db);}else{    return;}

}

void research_contact(sqlite3 *db)
{
int i,j;
int ret;
int row,column;
char flag;
char s_name[MAX_SIZE];
char sql[MAX_SIZE];

printf("please put int the name:\n");scanf("%s",s_name);getchar();  sprintf(sql,"select * from contact where name = '%s';",s_name);ret = sqlite3_get_table(db,sql,&result,&row,&column,&errmsg);if(ret){    printf("search failed!\n");}else{    for(i = 0; i <= row; i++)    {        for(j = 0; j < column; j++)        {            printf("%s|",result[i * column + j]);        }        printf("\n");    }}sqlite3_free_table(result);printf("Do you want to continue? y or n.\n");scanf("%c",&flag);getchar();while((flag != 'y') && (flag != 'n')){    printf("please put in again\n");    scanf("%c",&flag);    getchar();}if(flag == 'y'){    research_contact(db);}else{    return;}

}

0 0