LoginSignup
0
0

More than 5 years have passed since last update.

VB.NETからInterSystems ObjectScriptをクラスとしてシームレスに扱う方法

Last updated at Posted at 2018-08-27

この方法では、ObjectScriptで作成した関数を含めて、VB.NETの記述で完結することができます。SQLの記載の必要のないデータベース運用が可能です。

ObjectScript(Cache’、Studio)側の準備
→前回の(ActiveXの記事)を参考に、クラスを生成してください

VB.NET側の準備
1:参照の追加
プロジェクト→参照の追加から、DotNetgatawayss64と、InterSystems.Data.CacheClient.dllのふたつを参照する。(ファイルの所在は画像のパスを参照して参考にしてください)
20180827-3.PNG

2:Object Bindingの追加
C:\InterSystems\TryCache\dev\dotnet\bin\v2.0.50727\CacheNetWizard.exe
をツール→参照に追加する。
20180827-2.PNG

3:Bindingコードの出力
Cache'に接続し、ここではUSER領域を開いている。出力言語をVBにし、ファイルの出力先を指定(ここでは、ObjectBinding.vbとした)、インポートするクラス(=テーブル)を>で右の列に送り、Generateを押すと、ファイルが生成される。
20180827-4.PNG
生成されたファイルを、プロジェクトエクスプローラ右クリック→追加→既存の項目から読み込む。
20180827-5.PNG

4:VB.NETでプロジェクトを作成し(ここではフォームアプリケーション)、Button1を作って、次のように記述すればOK。(冒頭にImports InterSystems.Data.CacheClientを呼ぶこと)Log Fileは、下の例によらず、好きな場所を指定してください。User、PasswordはCache'で使っているものを各自入力してください。プログラムを動かすと、フォームのボタンを押せばDBへの書き込みができます。

Form1
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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0