管理人 の紹介

PowerShell from Japan!! 管理人のHIROです。 Microsoft MVP for PowerShell Jan. 2009 - Dec. 2010

PowerShellでSQLiteを使用する(3)

前回は テーブルを作成する方法を紹介しました。

今回は、作成したテーブルにデータを追加する方法について説明します。

といっても簡単で、前回のコードのヒア文字列部分(テーブルを作成している箇所ですね)を、Insert文に書き換えればOKです。

以下にコード例を示します。

この例では、empno が 1 、name が ”HIRO” というデータを追加します。

[void][System.Reflection.Assembly]::LoadFile("C:\Work\DB\System.Data.sqlite.dll")
$sqlite = New-Object System.Data.SQLite.SQLiteConnection
$sqlite.ConnectionString = "Data Source = C:\Work\DB\data.db"
$sqlite.Open()

#INSERT文
$cmd = @"
INSERT INTO USER 
(empno,name)
values 
(1,'HIRO')
"@

$sqlcmd = New-Object System.Data.SQLite.SQLiteCommand
$sqlcmd.Connection = $sqlite
$sqlcmd.CommandText = $cmd
$sqlcmd.ExecuteNonQuery()
$sqlite.Close()

次回は、SELECT文を使用する方法について説明します。

PowerShellでSQLiteを使用する(2)

SQLiteでテーブルを作成するには CREATE TABLEを実行します。

CREATE TABLEの構文は下記の通りです。

構文

CREATE TABLE テーブル名 (カラム名1, カラム名2, …)

もし empno, name というカラムを持つ、USERというテーブルを作成する場合は、下記のようになります。

CREATE TABLE USER (empno, name)

それではpowershell でSQLiteにテーブルを作成してみましょう。

接続やデータベースを開く、閉じる方法については前回説明したとおりです。

[void][System.Reflection.Assembly]::LoadFile("C:\Work\DB\System.Data.sqlite.dll")
$sqlite = New-Object System.Data.SQLite.SQLiteConnection
$sqlite.ConnectionString = "Data Source = C:\Work\DB\data.db"
$sqlite.Open()
#テーブル作成用文字列
$tbl = @"
CREATE TABLE user (empno, name)
"@
$sqlcmd = New-Object System.Data.SQLite.SQLiteCommand
$sqlcmd.Connection = $sqlite
$sqlcmd.CommandText = $tbl
$sqlcmd.ExecuteNonQuery()
$sqlite.Close()

データベースを開いたら、$tbl変数に、テーブルを作成するための文字列 CREATE TABLEを設定しています。

あとは、ComanndTextプロパティに作成してCREATE TABLEの文字列をセットし、ExecuteNonQueryメソッドを実行します。

最後に Closeメソッドを実行して終了です。

PowerShellでSQLiteを使用する(1)

SQLiteは、サーバーとしてではなく、アプリケーション組み込んで使用する軽量なデータベースです。

.NETのライブラリが提供されているので http://www.sqlite.org/download.html にアクセスして Precompiled Binaries for .NET と書かれたところにある System.Data.SQLite というリンクをクリックします。

次に、自分が使用しているPowerShell に合わせ、zipファイルをダウンロードして解凍します。

今回 sqlite-netFx20-binary-Win32-2005-1.0.88.0.zip を入手して解凍しました。

ここまでで準備完了です。

次はPowerShellを開いて下記コードを入力し、アセンブリをロードします。パスはご使用の環境合わせて変更して下さい。

[System.Reflection.Assembly]::LoadFile("C:\Work\DB\System.Data.sqlite.dll")

次に、接続文字列を作成し、データベースを開きます。

接続文字列はConnectionStringプロパティに設定します。データベースを開くにはOpenメソッドを実行します。

$sqlite.ConnectionString = "Data Source = C:\Work\DB\data.db"
$sqlite.Open()

データベースを閉じる場合はCloseメソッドを実行します。

$sqlite.Close()

データベースの開き方と閉じ方がわかりました。

あとはデータの追加方法や取得方法について学んでいけばOKです。

今日は時間がないので、ここまでとします。

続きは次回….

文字列を使いこなす ~その3~

・任意の文字列の文字数をカウントする

任意の文字列の文字数をカウントするにはLengthプロパティを使用します。

たとえば、”おはよう” の文字数をカウントするには下記のようにします。

"おはよう".Length

変数に入っている文字数もカウントすることができます。

$moji = "おはよう"
$moji.Length

バイト数をカウントする

先ほどは、Lengthプロパティを使用して文字数をカウントしました。

文字数ではなく、バイト数をカウントするにはEncodingクラスのGetByteCountメソッドを使用します。

下記はGetByteCountメソッドを使用して、バイト数をカウントする例です。

実行すると8を返します。

EncodingクラスのGetByteCountメソッド

文字列を使いこなす ~その2~

・指定した文字のANSI文字コードを取得する

PowerShellで指定した文字のANSI文字コードを取得するには、指定した文字(char型)を取得して、バイト値に変換する必要があります。

[byte][char]ANSI文字コードを取得したい文字

と入力することで、ANSI文字コードを取得することができます。

・ANSI文字コードに関連付けられた文字を取得する

PowerShellで指定したANSI文字コードに関連付けられた文字を取得するには、指定したANSI文字コードをChar型に変換します。

[char]ANSI文字コード

と入力することで、ANSI文字コードに関連付けられた文字を取得することができます。