_end(args);
printf("%s\n",sql);
*result=NULL;
if(sqlite3_prepare(g_mdb,sql,-1,&stmt,NULL)==SQLITE_OK){
while( sqlite3_step(stmt)==SQLITE_ROW){
/************************************************************************/
/* */
/************************************************************************/
table_name=sqlite3_column_table_name(stmt,0);
if(table_name) {
if(strcmp(table_name,STR(User))==0){
//添加到list就可以了
next=select_list_new();
next->value=select_value_item_user(stmt);
next->next=NULL;
if(*result==NULL){
*result=next;
} else {
home->next=next;
}
home=next;
}
} else {
{
int column_count=sqlite3_column_count(stmt);
int i=0;
for(i=0;i
这只是针对单一表的查询操作,可以加入count(*)功能。
int count;
select_table((void**)&count,SELECT_("count(*)",User,"1=1"));
对于其它的表,你只要创建一个相当于User的结构体就可以了,再添加一个 select_value_item_user 功能数据库值与此绑定功能的函数,再在select中选择这个函数就可,
当然,可以采用C 下的 HashMap 来把 表名(结构体名)与 绑定函数 做一个映像,这样方便一点,但我的表只有几个所以就不用做了。
|