Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C++ ve sqlite sorunu


Öne çıkan mesajlar

Mesaj tarihi:
Queryleri exec etmek için şu fonksiyonu kullanıyorum

bool cv::execQuery(string query)
{
bool flag = false;
sqlite3 *db; // sqlite3 db struct
char *zErrMsg = 0;
int rc;

// Open the test.db file
rc = sqlite3_open("test.db", &db);

if( rc )
{
// failed
fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db));
}
else
{
// success
fprintf(stderr, "Open database successfullyn");
}


char *cv_array = new char[query.size()+1]; //
cv_array[query.size()]=0; //
memcpy(cv_array,query.c_str(),query.size()); //


rc = sqlite3_exec(db, cv_array, callback, 0, &zErrMsg); //execution statement
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %sn", zErrMsg);
sqlite3_free(zErrMsg);
flag = false;
}
else
{
flag = true;
}

delete[] cv_array;

sqlite3_close(db);
return flag;

}

callback de şu:

int cv::callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %sn", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("n");
return 0;
}

Şimdi burda bi select sorgusu yaptığımda (son eklenen kayıdın id'si)ekrana basıyor cevabı, fakat ben bunu bir değişkene atamak istiyorum, ID olduğu için int olsun. Fakat sanırım ille de vector olması lazım. Neyse vectore de atamayı beceremedim.
Mesaj tarihi:
printf("%s = %sn", azColName, argv ? argv : "NULL");

bu satirdaki argv yerine argv[i] olmasi gerekmiyormu?

birde ilk fonksiyonda sqlite db acilmazsa hata mesaji bastiriyorsun ama fonksiyondan cikmiyorsun.
×
×
  • Yeni Oluştur...