作成プログラムの種類にもよりますが、クライアントレベルで完結してしまうシステムの場合(例:年賀状ソフト等)はわざわざデータベースサーバーを構築したり、メンテナンスをする必要はないと思います。(やってできないことはないですが)
データをメモリにロードして中でプログラムロジックを駆使して加工したり、住所録等をテキストに書き出したりとまとまったデータの取り扱いにはデータベースがあった方が操作や管理が楽です。
過去はマイクロソフト社製のAccessを利用していろいろとやっていましたが、商用のソフトなために購入費用や度重なるWindowsやOfficeのバージョンアップに伴って過去に作成したものが動かない現象が多々あります。
そんな中、無償のデータベースを利用してプログラムを開発する例が増えてきました。
無償バージョンが存在する代表的なデータベースは
・Oracle Express Edition
・SQL Server Express Edition
・MySQL
・PostgreSQL
・SQLite
・FireBird
など、専門的なものから簡易的なものまでいろいろあり、いい時代になりました。
そんな中で環境構築が必要なく、ファイル単位でやりくりできる「SQLite」に焦点をあててVisualBasic.NETでの使い方について記録しておこうと思います。
事前にSQLiteを利用するための「System.Data.SQLite」をダウンロード
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
↑からご自分の環境にあったものをインストールしてください。
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
【いきなり利用の場合のロジック】
SELECT文を発行してデータを取得するロジックです。
データベースファイルを指定して無ければエラーで終了します。
改良ポイントはそれぞれの機能をクラス化するのが流用の利便性を高めます。
Function DataBase_DataGet(ByVal strDBFilePath As String) As Boolean
DataBase_DataGet = False
Try
Dim strDBFilePath As String = "作成したSQLite用のデータベースファイル(*.db)"
'データベースファイルの存在確認
If System.IO.File.Exists(strDBFilePath) = False Then
'存在しない場合はエラーを出力して終了する
MessageBox.Show(ErrorString001, "エラーが発生しました。", MessageBoxButtons.OK, MessageBoxIcon.Error)
End
End If
Dim Connection As New SQLiteConnection
Dim Command As SQLiteCommand
Dim DataReader As SQLiteDataReader
Dim GetData(LimitCnt) As String
'接続文字列を設定
Connection.ConnectionString = "Version=3;Data Source=" & strDBFilePath & ";New=False;Compress=True;"
'オープン
Connection.Open()
'コマンド作成
Command = Connection.CreateCommand
'SQL作成
Command.CommandText = "SQL文(SELECT文)"
'データリーダーにデータ取得
DataReader = Command.ExecuteReader
'データを全件出力
Do Until Not DataReader.Read
GetData(0) = DataReader.Item("項目名").ToString
Loop
'破棄
DataReader.Close()
Command.Dispose()
Connection.Close()
Connection.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
まだまだ応用や使い道について調べてメモします。次回へ続きます。