- sqlite3 の関数を使用するプログラムを準備する。
main.c#include
#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; } // メイン関数 int main(int argc, char **argv) { sqlite3 *db; int rc; char *zErrMsg = 0; if (argc != 3) { fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); return -1; } rc = sqlite3_open(argv[1], &db); if (rc) { fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return -1; } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return 0; } - Makafile を準備する。
MakefileCC=gcc CFLAGS = -Wall LDFLAGS = -lsqlite3 TARGET = \ main.exe .SUFFIXES: .exe .c .o .c.o: $(CC) $(CFLAGS) -c -o $@ $< .o.exe: $(CC) -o $@ $< $(LDFLAGS) default: $(TARGET) clean: rm -rf *.o *.exe
- コンパイルをする
-
実行して動作確認する。第 1 引数はデータベースファイル名、第 2 引数に SQL 文を渡す。
> a.exe test.db "CREATE TABLE test_tbl(ID INT PRIMARY KEY, NAME TEXT NOT NULL);" > a.exe test.db "INSERT INTO test_tbl(ID, NAME) values (0, 'hoge');" > a.exe test.db "SELECT * from test_tbl;" ID = 0 NAME = hoge > a.exe test.db "INSERT INTO test_tbl(ID, NAME) values (1, 'aaa');" > a.exe test.db "SELECT * from test_tbl;" ID = 0 NAME = hoge ID = 1 NAME = aaa
2013年1月27日日曜日
[SQLite][SQL]MinGW, MSYS 環境での sqlite のコンパイル・使用方法
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿