Я использую C 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, тогда как на второй все мои операции не выполняются. Я действительно не знаю, почему указатели дают одинаковое значение. Есть ли способ исправить это так, чтобы обе мои БД работали без сбоев?