C言語でSQLiteを使ってみる

pupsqlite window

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」と名前を付けて保存をします。

保存をするとテーブルの新規作成の画面が出ます。

ここでテーブルを定義します。テスト用のデータベースのため簡単に

とします。

ここでOKを押してテーブル作成を完了するとメイン画面の左にあるテーブル一覧のリストに先ほど作成したテーブルが表示されます。

ここで作成したテーブルをダブルクリックするとテーブルの内容を編集できるようになります。

テーブルの内容を

となるように入力します。入力は(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のどちらかが必要です。コンパイルするときのディレクトリ構造は

で、ここをカレントディレクトリとしてコマンドプロンプトからコンパイルを行います。コンパイルを行う際はMinGWに環境変数のPathを通して、GCCをコマンドプロンプトより実行できるようにしています。

sqlite3.hはこの後のコンパイルに必須で、sqlite3.cまたはsqlite3.dllはコンパイル方法によって、どちらか一方があれば十分です。

sqlite_test.cはC言語でSQLiteを使うために今回、自作したプログラムとなります。

静的なコンパイル

出力される実行ファイルの名前を指定していないため、a.exeが出力されます。

必要に応じて、-oオプションで出力されるファイルに名前を付けてください。

DLLを使ったコンパイル

出力される実行ファイルの名前を指定していないため、a.exeが出力されます。

必要に応じて、-oオプションで出力されるファイルに名前を付けてください。

また、DLLで作成した実行ファイルは、実行ファイルのカレントディレクトリに、必要となったDLLもしくは環境変数のPathが通った場所にDLLがないと実行できません。