当前位置: 技术问答>linux和unix
嵌入式中,利用C语言操作SQLite数据库,查询没有数据返回,请大家帮忙看看哈
来源: 互联网 发布时间:2016-11-02
本文导语: 我是在ARM中使用Linux 2.6.13内核+qt2.3.7,我想使用SQLite数据库作为配置文件,我移植了SQLite数据库,数据库文件是在上位机中建立的,使用的SQLite Administrator创建的数据,一共三条,利用C语言操作SQLite3,数据库能正常...
我是在ARM中使用Linux 2.6.13内核+qt2.3.7,我想使用SQLite数据库作为配置文件,我移植了SQLite数据库,数据库文件是在上位机中建立的,使用的SQLite Administrator创建的数据,一共三条,利用C语言操作SQLite3,数据库能正常打开,但是我下面的操作查询不出来数据,rc = sqlite3_step(stmt);的返回值为SQLITE_NONE,而不是SQLITE_ROW,这是什么原因呢?莫非我在上位机XP下用SQLite Administrator创建的数据库文件,ARM Linux不可用?求人指点迷津,先谢谢大家
QString strTemp = "";
QString strOutput = "";
QByteArray byte;
sqlite3 *db = NULL;
char *pErrMsg = NULL;
int rc;
sqlite3_stmt *stmt;
char *tail;
int i,j,ncols;
char list[6][100];
rc = sqlite3_open("/udisk/test.db",&db);
if( rc!= SQLITE_OK )
{
fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else
{
printf("You have opened a sqlite3 database named test.db successfully!n");
}
rc=sqlite3_prepare(db,"select Name from KTB",-1,&stmt,0);
if (rc!=SQLITE_OK) /*出错处理*/
{
printf("sqlite3_prepare error! n");
}
rc = sqlite3_step(stmt);
ncols = sqlite3_column_count(stmt);
while (rc == SQLITE_ROW) 返回值是:SQLITE_NONE #define SQLITE_DONE 101
{
for (j=1;jsetText(QString::fromLocal8Bit(strOutput));
sqlite3_finalize(stmt);
sqlite3_close(db);
|
在ARM Linux本机创建一个数据库文件试试看呢