Windows10でMinGWの環境を利用して、C言語でSQLiteを使って見た記事です。
目次
環境
・Windows 10
環境構築
C言語
・MinGW(GCC)
SQLite
・PupSQLite
MinGWのインストール(準備1)
MinGWのインストールはこちらの記事で紹介しています。
PupSQLiteのインストール(準備2)
テスト用のSQLiteのデータベースを作成するために、GUIのデータベース作成ツールを使いたいと思います。特に必要がない方は飛ばしてください。
PupSQLite(フリーソフト)|窓の社
http://forest.watch.impress.co.jp/library/software/pupsqlite/
zipファイルがダウンロードされます。そのzipファイルを展開して、PupSQLiteという名前の実行ファイルを実行するとすぐに使うことができます。
PupSQLiteを実行すると以下の画面が出ます。
PupSQLiteでテスト用データベース作成
PupSQLiteでテスト用データベースを作成するためにメニューバーから「ファイル」→「新規作成」を選択、またはメニューバーの下にある「新規作成アイコン」を選択します。
データベースを保存するためのダイアログが開きますので、ここでは、「testdb」と名前を付けて保存をします。
保存をするとテーブルの新規作成の画面が出ます。
ここでテーブルを定義します。テスト用のデータベースのため簡単に
1 2 3 4 5 |
テーブル名:testtable カラム名:データ型 id:INTEGER型 (主キー) name:TEXT型 |
とします。
ここでOKを押してテーブル作成を完了するとメイン画面の左にあるテーブル一覧のリストに先ほど作成したテーブルが表示されます。
ここで作成したテーブルをダブルクリックするとテーブルの内容を編集できるようになります。
テーブルの内容を
1 2 3 4 5 |
id | name --------- 1 | aaa 2 | bbb 3 | ccc |
となるように入力します。入力は(null)と書かれたセルをダブルクリックすることで、入力ができるようになります。入力が終了したら「変更を保存アイコン」を押して、テーブルを保存します。
これでテスト用のデータベースの作成は終了です。
SQLiteのソースコードとDLLをダウンロード
SQLiteのサイトよりソースコードとDLLのダウンロードを行います。しかし、実際にプログラムをコンパイルする際は、ソースコードだけでも十分です。
SQLite https://www.sqlite.org/download.html
2017/06/20時点では
ソースコードは
sqlite-amalgamation-3190300.zip
という名前で、DLLは今回の環境では
sqlite-dll-win32-x86-3190300.zip
の32bit版を使用します。これは、MinGWのコンパイラが32bit版だからです。
SQLiteを使ったプログラムのコンパイル
実際にコンパイルを行う際は、ソースコードまたはDLLのどちらかが必要です。コンパイルするときのディレクトリ構造は
1 2 3 4 5 6 |
C:. sqlite3.dll sqlite3.h sqlite3.c sqlite_test.c testdb.db |
で、ここをカレントディレクトリとしてコマンドプロンプトからコンパイルを行います。コンパイルを行う際はMinGWに環境変数のPathを通して、GCCをコマンドプロンプトより実行できるようにしています。
sqlite3.hはこの後のコンパイルに必須で、sqlite3.cまたはsqlite3.dllはコンパイル方法によって、どちらか一方があれば十分です。
sqlite_test.cはC言語でSQLiteを使うために今回、自作したプログラムとなります。
静的なコンパイル
1 |
gcc sqlite_test.c sqlite3.c |
出力される実行ファイルの名前を指定していないため、a.exeが出力されます。
必要に応じて、-oオプションで出力されるファイルに名前を付けてください。
DLLを使ったコンパイル
1 |
gcc sqlite_test.c -L. -lsqlite3 |
出力される実行ファイルの名前を指定していないため、a.exeが出力されます。
必要に応じて、-oオプションで出力されるファイルに名前を付けてください。
また、DLLで作成した実行ファイルは、実行ファイルのカレントディレクトリに、必要となったDLLもしくは環境変数のPathが通った場所にDLLがないと実行できません。