VB.NET에서 InterSystems Cache '에서 데이터를 읽는 방법
Cache’ 아이콘 → 스튜디오 시작
파일 → 새로 만들기 → Cache '클래스 정의 선택
클래스 이름(=테이블 이름) 입력(여기서는 User.Main.TestClass)
%Persistent를 선택하여 완료
User.Main.TestClass에 다음 코드를 입력
TestClass.cls
Class User.Main.TestClass Extends %Persistent
{
Property name As %String;
// field name 1
Property age As %Numeric;
// field name 2
Query ByName(str As %String = "") As %SQLQuery(CONTAINID = 1, SELECTMODE = "RUNTIME") [ SqlName = SP_TestClass_By_Name, SqlProc ]
{
SELECT *
FROM TestClass
WHERE (name %STARTSWITH :str)
ORDER BY ID
}
}
· 데이터 입력(VB.NET 사용)
마지막 기사 참조
htps : // 코 m / 토리 씨 _ / ms / 7 아 d7123409 아 27b8c0f0
Visual Studio에서 ObjectBinding에서 TestClass를 낸 VB.NET의 코드를 출력하고 가져와서(폼 애플리케이션의 Form1에 버튼을 만들어) 레코드를 작성한다.
Form1
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 = yourpass; USER ID = yourid"
Dim cnCache As CacheConnection = New CacheConnection(cacheConnectStr)
cnCache.Open()
Dim d As User.Main.TestClass
d = New User.Main.TestClass(cnCache)
d.name = "Sakurai Ichiro"
d.age = 25
d.Save()
d.Close()
d = New User.Main.TestClass(cnCache)
d.name = "Sakurai Jiro"
d.age = 32
d.Save()
d.Close()
d.Dispose()
cnCache.Close()
End Sub
End class
이와 같이 2 레코드가 추가된다.
버튼을 하나 더 만들고 Form1의 Button2에 대해 다음과 같이 기술한다.
Button2
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim cacheConnectStr As String = "Server = localhost; Port=1972;" +
"Log File = C:\VSProject\NewCarte\NewCarte\NewCarte\bin\NewCarte.log; Namespace = USER;" +
"Password = yourpass; USER ID = yourid"
Dim cnCache As CacheConnection = New CacheConnection(cacheConnectStr)
cnCache.Open()
'Cache'内のコマンドを呼び出す方法(ここではByName関数を呼び出している。)
Dim cmd1 As CacheCommand
cmd1 = User.Main.TestClass.ByName(cnCache)
Dim Name_param1 As CacheParameter = New CacheParameter("name", CacheDbType.NVarChar) '読みだしたいフィールドの指定。パラメータにしてよい
Name_param1.Value = "Sakurai" '該当氏名を検索
cmd1.Parameters.Add(Name_param1) '検索条件をパラメータに追加 "name = "Sakurai""
Dim reader1 As CacheDataReader = cmd1.ExecuteReader() 'BasicPatientInformationの中でptidは一意
'読み出し用。OpenIdで既存のレコードと結び付けられるので、Newは不要
Dim d1 As User.Main.TestClass
'データがある分だけ読み出す。ここでは2個
Dim id As String
While reader1.Read()
id = reader1(reader1.GetOrdinal("ID")).ToString() 'データが格納された先頭からID番号を拾う
d1 = User.Main.TestClass.OpenId(cnCache, id) 'ID番号でデータベースにアクセスする
MsgBox(d1.Id + " " + d1.name + " " + CStr(d1.age))
End While
End Sub
실행 결과는 다음과 같다. 여기에서는 MsgBox로 표시할 뿐입니다만, 이 읽은 데이터로부터, 등록된 ID 번호를 알 수 있고, 이 ID로 OpenId를 한다는 방법으로, 개별의 레코드에 액세스 합니다.
이 프로그램에서는 Sakurai만 입력했기 때문에 검색 조건에 맞기 때문에 두 레코드 모두 출력되었지만 다른 이름이 들어 있으면 읽히지 않습니다. (추출 기능) 모든 레코드를 읽으려면,
Name_param1.Value = ""
라고 기술하면 읽을 수 있습니다.
Reference
이 문제에 관하여(VB.NET에서 InterSystems Cache '에서 데이터를 읽는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/torisan_/items/708b7c8c282bba83432d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)