2
나는 c와 함께 sqlite3 API를 배우려고하고 다음 이름과 전화를 의제라는 테이블을 만들었습니다. 그런 다음 3 행을 채 웁니다. 그런 다음 gcc -o agenda agenda.c -lsqlite3 -Wall -ggdb
로 컴파일c와 sqlite에서 데이터를 검색
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char **argv)
{
sqlite3 *db;
sqlite3_stmt *res;
const char *tail;
int count = 0;
if(sqlite3_open("agenda.db", &db))
{
sqlite3_close(db);
printf("Can't open database: %s\n", sqlite3_errmsg(db));
return(1);
}
printf("Database connection okay!\n");
if(sqlite3_prepare_v2(db, "SELECT phone,name FROM agenda ORDER BY name", 128, &res, &tail) != SQLITE_OK)
{
sqlite3_close(db);
printf("Can't retrieve data: %s\n", sqlite3_errmsg(db));
return(1);
}
printf("Reading data...\n");
printf("%16s | %32s\n", "Phone", "Name");
while(sqlite3_step(res) != SQLITE_ROW)
{
printf("%16s | %32s\n",
sqlite3_column_text(res, 0),
sqlite3_column_text(res, 1));
count++;
}
printf("Rows count: %d\n", count);
sqlite3_finalize(res);
sqlite3_close(db);
return(0);
}
: 내 다음 단계는 다음과 같은 C 코드를 생성했다.
Database connection okay!
Reading data...
Phone | Name
Rows count: 0
그러나 실제로 agenda.db
파일의 3 개 행이 :하지만 얻는 결과는 항상 있습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
그래
!=
싶은 생각합니다. 내 잘못! – Wanderson