この方法では、ObjectScriptで作成した関数を含めて、VB.NETの記述で完結することができます。SQLの記載の必要のないデータベース運用が可能です。
ObjectScript(Cache’、Studio)側の準備
→前回の(ActiveXの記事)を参考に、クラスを生成してください
VB.NET側の準備
1:参照の追加
プロジェクト→参照の追加から、DotNetgatawayss64と、InterSystems.Data.CacheClient.dllのふたつを参照する。(ファイルの所在は画像のパスを参照して参考にしてください)
2:Object Bindingの追加
C:\InterSystems\TryCache\dev\dotnet\bin\v2.0.50727\CacheNetWizard.exe
をツール→参照に追加する。
3:Bindingコードの出力
Cache'に接続し、ここではUSER領域を開いている。出力言語をVBにし、ファイルの出力先を指定(ここでは、ObjectBinding.vbとした)、インポートするクラス(=テーブル)を>で右の列に送り、Generateを押すと、ファイルが生成される。
生成されたファイルを、プロジェクトエクスプローラ右クリック→追加→既存の項目から読み込む。
4:VB.NETでプロジェクトを作成し(ここではフォームアプリケーション)、Button1を作って、次のように記述すればOK。(冒頭にImports InterSystems.Data.CacheClientを呼ぶこと)Log Fileは、下の例によらず、好きな場所を指定してください。User、PasswordはCache'で使っているものを各自入力してください。プログラムを動かすと、フォームのボタンを押せばDBへの書き込みができます。
Imports InterSystems.Data.CacheClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'接続の確立
Dim cacheConnectStr As String = "Server = localhost; Port=1972;" +
"Log File = C:\VSProject\NewCarte\NewCarte\NewCarte\bin\NewCarte.log; Namespace = USER;" +
"Password = password; USER ID = userid"
Dim cnCache As CacheConnection = New CacheConnection(cacheConnectStr)
cnCache.Open()
'インスタンスの生成(レコードを作る)
Dim d As User.Main.NewClass2
d = New User.Main.NewClass2(cnCache)'ObjectScriptの表現と同じ記法で表現できます
d.a = "20180704" 'ここでNewClass2は、a,b,c(いずれも%String)のProperty
d.b = "ODB Lecture"
d.c = "Additional"
d.Save() 'データをCache'DBに書き込み
d.Close()
d.Dispose()
cnCache.Close()
End Sub
End Class