Sqlite-c-cpp
SQLite-C/C ++
この章では、C/C ++プログラムでSQLiteを使用する方法を学習します。
インストール
C/C ++プログラムでSQLiteの使用を開始する前に、マシンにSQLiteライブラリがセットアップされていることを確認する必要があります。 SQLiteインストールの章を確認して、インストールプロセスを理解してください。
C/C ++インターフェイスAPI
以下は重要なC/C SQLiteインターフェイスルーチンで、C/C プログラムからSQLiteデータベースを操作するための要件を満たすことができます。 より洗練されたアプリケーションをお探しの場合は、SQLiteの公式ドキュメントをご覧ください。
Sr.No. | API & Description |
---|---|
1 |
sqlite3_open(const char *filename, sqlite3 **ppDb) このルーチンは、SQLiteデータベースファイルへの接続を開き、他のSQLiteルーチンで使用されるデータベース接続オブジェクトを返します。 _filename_引数がNULLまたは ':memory:'の場合、sqlite3_open()は、セッションの期間だけ持続するRAM内にメモリ内データベースを作成します。 ファイル名がNULLでない場合、sqlite3_open()はその値を使用してデータベースファイルを開こうとします。 その名前のファイルが存在しない場合、sqlite3_open()はその名前の新しいデータベースファイルを開きます。 |
2 |
sqlite3_exec(sqlite3, const char sql, sqlite_callback, void *data, char **errmsg) このルーチンは、複数のSQLコマンドで構成できるsql引数によって提供されるSQLコマンドを実行するための迅速で簡単な方法を提供します。 ここで、最初の引数_sqlite3_はオープンデータベースオブジェクトであり、_sqlite_callback_は_data_が最初の引数であるコールバックであり、ルーチンによって発生したエラーをキャプチャするためにerrmsgが返されます。 SQLite3_exec()ルーチンは、文字列の最後に到達するかエラーが発生するまで、 sql 引数で指定されたすべてのコマンドを解析して実行します。 |
3 |
sqlite3_close(sqlite3)* このルーチンは、sqlite3_open()の呼び出しによって以前に開かれたデータベース接続を閉じます。 接続に関連付けられているすべての準備済みステートメントは、接続を閉じる前に確定する必要があります。 ファイナライズされていないクエリが残っている場合、sqlite3_close()はSQLITE_BUSYを返し、エラーメッセージUnfinalizedステートメントが原因で閉じることができません。 |
データベースに接続
次のCコードセグメントは、既存のデータベースに接続する方法を示しています。 データベースが存在しない場合は、データベースが作成され、最終的にデータベースオブジェクトが返されます。
それでは、上記のプログラムをコンパイルして実行し、現在のディレクトリにデータベース test.db を作成しましょう。 要件に応じてパスを変更できます。
あなたがC ++ソースコードを使用しようとしている場合は、次のようにコードをコンパイルできます-
ここでは、プログラムをsqlite3ライブラリとリンクして、必要な機能をCプログラムに提供しています。 これにより、ディレクトリにデータベースファイルtest.dbが作成され、次の結果が得られます。
テーブルを作成する
次のCコードセグメントを使用して、以前に作成したデータベースにテーブルを作成します-
上記のプログラムをコンパイルして実行すると、test.dbにCOMPANYテーブルが作成され、ファイルの最終リストは次のようになります-
INSERT操作
次のCコードセグメントは、上記の例で作成されたCOMPANYテーブルにレコードを作成する方法を示しています-
上記のプログラムがコンパイルおよび実行されると、COMPANYテーブルに特定のレコードが作成され、次の2行が表示されます-
SELECT操作
実際の例を使ってレコードを取得する前に、例で使用しているコールバック関数について詳しく見てみましょう。 このコールバックは、SELECTステートメントから結果を取得する方法を提供します。 次の宣言があります-
上記のコールバックが3番目の引数としてsqlite_exec()ルーチンで提供される場合、SQLiteはSQL引数内で実行される各SELECTステートメントで処理される各レコードに対してこのコールバック関数を呼び出します。
次のCコードセグメントは、上記の例で作成されたCOMPANYテーブルからレコードを取得して表示する方法を示しています-
上記のプログラムをコンパイルして実行すると、次の結果が生成されます。
更新操作
次のCコードセグメントは、UPDATEステートメントを使用してレコードを更新し、更新されたレコードをCOMPANYテーブルから取得して表示する方法を示しています。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます。
削除操作
次のCコードセグメントは、DELETEステートメントを使用してレコードを削除し、COMPANYテーブルから残りのレコードをフェッチして表示する方法を示しています。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます。