SQLite C example미분류2013. 4. 26. 04:57
Table of Contents
반응형
출처
http://nano-chicken.blogspot.kr/2012_08_01_archive.html
http://snortbit.blog.163.com/blog/static/189573172201331593547914/
#include <iostream> #include <sqlite3.h> #include <cstdlib> #include <assert.h> using namespace std; int main(int argc, char** argv) { sqlite3 *conn; sqlite3_stmt *statement; ⁄⁄ SQL Statement Object int ret = 0; int cols; ⁄⁄ This routine opens a connection to an SQLite database file ⁄⁄ and returns a database connection object. ret = sqlite3_open_v2("hello.db", &conn, SQLITE_OPEN_READONLY, NULL); if (ret) { cout << "can not open database\n"; exit(0); } ret = sqlite3_prepare_v2(conn, "select * from hello", -1, &statement, NULL); if (ret != SQLITE_OK) { cout << "We did not get any data\n"; exit(0); } cols = sqlite3_column_count(statement); for (int col = 0; col < cols; col++) { cout << " " << sqlite3_column_name(statement, col); }; cout << endl; while (true) { ret = sqlite3_step(statement); if (ret == SQLITE_ROW) { for (int col = 0; col < cols; col++) { switch (sqlite3_column_type(statement, col)) { case SQLITE_INTEGER: cout << " " << sqlite3_column_int(statement, col) << " "; break; case SQLITE_FLOAT: cout << " " << sqlite3_column_double(statement, col) << " "; break; case SQLITE_TEXT: cout << " " << sqlite3_column_text(statement, col) << " "; break; case SQLITE_NULL: cout << " " << "NULL" << " "; break; } }; cout << endl; } else if (ret == SQLITE_DONE) { cout << "done" << endl; break; } else { cout << "ret:" << ret << endl; break; } } sqlite3_finalize(statement); sqlite3_close(conn); return 0; }
#include "stdafx.h" #include "sqlite3.h" static int callback(void *NotUsed, int argc, char **argv, char **azColName) { int i; for(i=0; i<argc; i++){ printf("%s = %s⁄n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("⁄n"); return 0; } #define CHECK_RC(rc,szInfo,szErrMsg,db) if(rc!=SQLITE_OK) ⁄ {printf("%s error!⁄n",szInfo);⁄ printf("%s⁄n",szErrMsg); ⁄ sqlite3_free(szErrMsg); ⁄ sqlite3_close(db); ⁄ return 0;} int _tmain(int argc, _TCHAR* argv[]) { sqlite3 *db; char *dbPath="f:⁄test.db"; char *szErrMsg = 0; int rc= sqlite3_open(dbPath, &db); CHECK_RC(rc,"open database",db); char *szSql="create table UserInfo(ID int primary key , UserName char, PassWord char);"; rc=sqlite3_exec(db,szSql,0,0,&szErrMsg); CHECK_RC(rc,"create table",szErrMsg,db); rc=sqlite3_exec(db,"insert into UserInfo(ID,UserName,PassWord) values(1,'kfqcome','123456')",0,0,&szErrMsg); CHECK_RC(rc,"insert info",szErrMsg,db); rc=sqlite3_exec(db,"insert into UserInfo(ID,UserName,PassWord) values(2,'miss wang','654321')",0,0,&szErrMsg); CHECK_RC(rc,"insert info",szErrMsg,db); szSql="select * from UserInfo"; rc = sqlite3_exec(db,szSql, callback, 0, &szErrMsg); CHECK_RC(rc,"query values",szErrMsg,db); sqlite3_close(db); getchar(); return 0; }
#include <stdio.h> #include <sqlite3.h> int main(int argc, char **argv) { sqlite3 *conn; sqlite3_stmt *res; int err = 0, cnt = 0; const char *err_msg; const char *tail; err = sqlite3_open("ship.sqlite3", &conn); if (err) { printf("Can not open database\n"); return 1; } err = sqlite3_exec(conn, "update ship set name=\'NCC-1701-D\' where id=3", 0, 0, 0); err = sqlite3_prepare_v2(conn, "select id,name from ship order by id", 1000, &res, &tail); if (err != SQLITE_OK) { printf("Select failed"); return 1; } while (sqlite3_step(res) == SQLITE_ROW) { printf("%u ", sqlite3_column_int(res, 0)); printf("%s\n", sqlite3_column_text(res, 1)); cnt++; } sqlite3_finalize(res); sqlite3_close(conn); return 0; }
반응형
'미분류' 카테고리의 다른 글
뒤늦게 Nook HD+에 킷캣 CM11을 올려보았어요.. (0) | 2014.06.09 |
---|---|
한성 U54X-GA660 노트북 개봉기 (0) | 2014.05.12 |
구글 드라이브에 올린 동영상을 안드로이드폰에서 스트리밍으로 보자.. (14) | 2014.05.04 |
알파스캔 AOC E1659FWU USB 모니터 (0) | 2014.04.27 |
wxpython webview example (0) | 2013.04.19 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!