qlite3 - 지정한 이름 중 가장 나이가 많은 줄의 모든 필드 정보를 찾습니다
2229 단어 데이터베이스
#include
#include
#include
static int callback(void *data, int argc, char **argv, char **azColName){
int i;
fprintf(stderr, "%s
", (const char*)data);
printf("argc: %d
", argc);
for (i = 0; i < argc; i++)
{
printf("%s = %s
", azColName[i], argv[i] ? argv[i] : "NULL");
//printf("count = %s
", argv[i]);
if (!strcmp(azColName[i], "AGE"))
{
printf("cc %s = %s
", azColName[i], argv[i]);
}
}
//printf("count = %s
", argv[0]);
printf("
");
return 0;
}
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
const char* data = "Callback function called";
/* Open database */
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
exit(0);
}else{
fprintf(stderr, "Opened database successfully
");
}
#if 0
// insert
/* Create SQL statement */
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \
"VALUES (17, 'Allen', 0, 'California', 11110.00 );";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s
", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Records created successfully
");
}
#endif
// select
/* Create SQL statement */
//sql = "SELECT AGE,COUNT(*) from COMPANY where NAME='Allen'";
sql = "SELECT * from COMPANY where (AGE IN (SELECT MAX(AGE) FROM COMPANY where NAME='Allen'))";
/* Execute SQL statement */
rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s
", zErrMsg);
sqlite3_free(zErrMsg);
}else{
fprintf(stdout, "Operation done successfully
");
}
sqlite3_close(db);
return 0;
}