我正在使用sqlite3 C API并且在我的项目中有两个数据库。它们分别称为EPG和REC数据库。我使用一个名为
的函数打开它们 re_db_epg_init();
re_db_rec_init();
两者的代码如下:
re_db_epg_init()
void re_epg_db_init(void)
{
int status = sqlite3_initialize();
s_dbepg_path=re_dbepg_get_path(); //get the path of the database
//openrecDB
status=sqlite3_open_v2(s_dbepg_path,&s_re_dbepg,SQLITE_OPEN_READONLY,NULL);
//check status
if(status!=SQLITE_OK){
printf("\n\nerror occured in opening epg database \n");
exit(0);
}
status=sqlite3_extended_result_codes(s_re_dbepg,1);
printf("\n\nstatus for opening the epg db is = %d \n",status);
}
和re_db_rec_init()
void re_rec_db_init(void)
{
int status;
s_dbrec_path=re_dbrec_get_path();
status=sqlite3_open_v2(s_dbrec_path,&s_re_dbrec,SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE,NULL);
//check status
if(status!=SQLITE_OK){
printf("\n\nerror occured in opening rec database \n");
exit(0);
}
status=sqlite3_extended_result_codes(s_re_dbrec,1);
printf("\n\nstatus for opening the rec db is = %d \n",status);
}
因此,当我调用函数时,我应该有两个指针s_re_dbepg,s_re_dbrec,它们充当两个数据库的句柄。但是当我打印出来时,它们会给出相同的值(一些随机的十六进制值)。因此我能够在EPG数据库上执行所有操作,而在第二个上我的所有操作都失败了。我真的不知道为什么指针给出相同的值。有没有办法纠正这个问题,以便我的数据库运行顺畅?