DTO を使用したカタログと辞書の作成および管理 : DtoDatabase オブジェクト
 
このページをシェアする                  
DtoDatabase オブジェクト
プロパティ
 
DataPath
データベースのデータの場所を取得または設定します。
DbCodePage
データベースのコード ページを取得または設定します。このプロパティは列挙型です。値のリストについては、データベース コード ページを参照してください。ゼロの値はサーバーのエンコード(データベース エンジンを起動しているサーバーのコード ページ)を指定します。
DbFlags
データベースのデータベース フラグを取得または設定します。このプロパティは列挙型です。値のリストについては、データベース フラグを参照してください。
DdfPath
データベースの辞書のパスを取得または設定します。
Name
データベースの名前を設定または取得します。
Secured
データベースにセキュリティが設定されているかどうかを返します(0 = セキュリティ未設定、1 = セキュリティ設定済み)
Session
この DtoDatabase オブジェクトに関連付けられている Session オブジェクトを取得または設定します。
コレクション
DtoTables コレクション
メソッド
AddUserToGroup
AlterUserName
AlterUserPassword
Close
COPY
CreateGroup
CreateUser
DropGroup
DropUser
Open
RemoveUserFromGroup
Secure
UnSecure
備考
Secure メソッドおよび UnSecure メソッドは、データベースが閉じている場合にのみ使用可能です。
以下の例では、セッション オブジェクトのインスタンスを作成し、サーバーに接続する方法を示します。
'セッション オブジェクトのインスタンスを作成し、サーバーに接続する
Dim my_session as New DtoSession
Dim result as DtoResult
result = my_session.Connect("myserver", "username", "password")
 
'セッション オブジェクトを使用して Databases コレクションを取得する
Dim my_databases as DtoDatabases
Set my_databases = my_session.Databases
 
'最初のデータベースを取得し、その辞書のパスを照会する
Dim first_database as DtoDatabase
Dim dictionarypath as string
Set first_database = my_databases(1)
dictionarypath = first_database.DdfPath
 
以下の例では、Demodata サンプル データベースで DBCodePage プロパティを使用したコード ページの取得および設定方法を示します。
Dim m_dtoSession1 As New DtoSession
Dim result As dtoResult
result = m_dtoSession1.Connect("localhost", "", "")
Dim sCodePage As String
sCodePage = m_dtoSession1.Databases("DEMODATA").DBCodePage
MsgBox "Code Page for database (before change):" & CStr(sCodePage)
If result = Dto_Success Then
Rem Set the code page for the database by passing in
Rem the code page number (for example, 0, 932, 1252,
Rem and so forth).
m_dtoSession1.Databases("DEMODATA").DBCodePage = 0
End If
MsgBox "Code Page for database:" & CStr(m_dtoSession1.Databases("DEMODATA").DBCodePage)
m_dtoSession1.Disconnect
関連項目
DtoDatabases コレクション
メソッドの詳細
AddUserToGroup
既存ユーザーをデータベースの既存グループに追加します。
構文
result = Object.AddUserToGroup(username, groupname)
引数
Object
Dtodatabase オブジェクト。
username
グループに追加するユーザー名。
groupname
ユーザーを追加するグループ名。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
この関数は、指定したグループまたはユーザーがデータベースにあらかじめ存在していない場合や、ユーザーが別のグループのメンバーである場合は失敗します。
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
ユーザーおよびグループは指定したデータベースに既に存在している。
ユーザーは別のグループのメンバーではない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function AddUserToGroup(sUserName As String, sGroupName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、グループにユーザーを追加しましょう
res = m_dbn.AddUserToGroup(sUserName, sGroupName)
If res <> Dto_Success Then
LogResult("グループへのユーザーの追加でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザー " & sUserName & " がグループ " & sGroupName & " に追加されました。")
End If
End If
m_dbn.Close
End Function
AlterUserName
指定されたデータベースの既存のユーザーの名前を変更します。
構文
result = Object.AlterUserName(username, new_username)
引数
Object
Dtodatabase オブジェクト。
username
既存のデータベース ユーザーの名前。
new_username
データベース ユーザーの新しい名前。ヌルを設定すると関数は失敗します。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
ユーザー名は指定したデータベースに既に存在している。
新しいユーザー名が指定したデータベースに存在していない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function AlterUserName(sUserName As String, sNewUserName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、ユーザー名を変更しましょう
res = m_dbn.AlterUserName(sUserName, sNewUserName)
If res <> Dto_Success Then
LogResult("ユーザー名の変更でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザー名は正常に変更されました。新しいユーザー名:" & sNewUserName)
End If
End If
m_dbn.Close
End Function
AlterUserPassword
既存のユーザーのパスワードを変更します。
構文
result = Object.AlterUserPassword(username, new_password)
引数
Object
Dtodatabase オブジェクト。
username
パスワードを変更するデータベース ユーザーの名前。
new_password
ユーザーの新しいパスワード。ヌルを設定するとパスワードがクリアされます。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
ユーザー名は指定したデータベースに既に存在している。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function AlterUserPassword(sUser As String, sNewPassword As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、ユーザーのパスワードを変更しましょう
res = m_dbn.AlterUserPassword(sUser, sNewPassword)
If res <> Dto_Success Then
LogResult("ユーザーのパスワードの変更でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザーのパスワードは正常に変更されました。")
End If
End If
m_dbn.Close
End Function
Close
Open メソッドを使用して開いたデータ辞書ファイルのセットを閉じます。
構文
result = Object.Close
引数
Object
DtoDatabase オブジェクト
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
備考
Open メソッドを使ってデータベースを開い後にこのメソッドを呼び出します。エラー情報は Error プロパティを使って取得することができます。
Dim m_database as new DtoDatabase
Dim result as DtoResult
 
result = m_database.Open("dbuser","pwd")
 
'ここで操作を実行
'
result = m_database.Close
COPY
現在のデータベースを基にして新しいデータベースを作成します。
構文
result = Object.Copy(username, password, newDBname, newDictionaryPath, newDataPath)
引数
Object
DtoDatabase オブジェクト
username
データベース用のデータベース ユーザー名です。データベースにセキュリティが設定されていない場合、空文字列を設定します。
password
データベース ユーザーのパスワードです。データベースにセキュリティが設定されていない場合、空文字列を設定します。
newDBname
コピーしたデータベース用のデータベース名です。
newDictionaryPath
辞書ファイルを作成するディレクトリへの絶対パス。これは既存のディレクトリでなければなりません。
newDataPath
データベースのデータ パスです。デフォルトのデータ パス(つまり、辞書パスと同じパス)を使用するには、空文字列を渡します。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
備考
コピーされたデータベースにおいて参照整合性は保持されます。
このメソッドで返されるエラーの詳細については、Error プロパティを使って取得することができます。
Dim Database As New DtoDatabase
Dim result as DtoResult
Database.Session = my_session 'セッションが存在すると仮定
Database.Name = "DEMODATA"
'セキュリティが設定されていないデータベースでは
'ユーザー名とパスワードは不要
result = Database.Copy("", "", "DEMODATA2", "D:\DEMODATA2", "D:\DEMODATA2")
 
If NOT result = Dto_Success Then
MsgBox "Error"+ Session.Error(result)
End If
CreateGroup
既存のデータベースに新しいユーザー グループを作成します。
構文
result = Object.CreateGroup(groupname)
引数
Object
Dtodatabase オブジェクト。
groupname
データベースに追加するグループの名前。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
同じ名前のグループが指定したデータベースに存在していない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function CreateGroup(sGroupName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、グループを作成しましょう
res = m_dbn.CreateGroup(sGroupName)
If res <> Dto_Success Then
LogResult("グループの作成でエラーが発生しました:" & CStr(res))
Else
LogResult("グループ " & sGroupName & " が作成されました。")
End If
End If
m_dbn.Close
End Function
CreateUser
既存のデータベースに新しいユーザーを作成します。任意で、パスワードを設定することと、新しいユーザーを既存のグループに割り当てることができます。
構文
result = Object.CreateUser(username[, password][, groupname])
引数
Object
Dtodatabase オブジェクト。
username
データベースに追加するユーザーの名前。
password
ユーザー パスワード。ヌルを設定するとパスワードは設定されません。
groupname
ユーザーを割り当てるデータベース グループの名前。ヌルを設定するとユーザーはグループに割り当てられません。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
同じ名前のユーザーが指定したデータベースに存在していない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function CreateUser(sUserName As String, sPassword As String, sGroupName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、グループを作成しましょう
res = m_dbn.CreateUser(sUserName, sPassword, sGroupName)
If res <> Dto_Success Then
LogResult("ユーザーの作成でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザー " & sUserName & " がグループ " & sGroupName & " に作成されました。")
End If
End If
m_dbn.Close
End Function
DropGroup
データベースから既存のグループを削除します。
構文
result = Object.DropGroup(groupname)
引数
Object
Dtodatabase オブジェクト。
groupname
データベースから削除するグループの名前。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
同じ名前のグループが指定したデータベースに存在していない。
グループにはメンバーが含まれていない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function DropGroup(sGroupName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、グループを削除しましょう
res = m_dbn.DropGroup(sGroupName)
If res <> Dto_Success Then
LogResult("グループの削除でエラーが発生しました:" & CStr(res))
Else
LogResult("グループ " & sGroupName & " が削除されました。")
End If
End If
m_dbn.Close
End Function
DropUser
データベースから既存のユーザーを削除します。
構文
result = Object.DropUser(username)
引数
Object
Dtodatabase オブジェクト。
username
データベースから削除するユーザーの名前。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
同じ名前のユーザーが指定したデータベースに存在している。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function DropUser(sUserName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、ユーザーを削除しましょう
res = m_dbn.DropUser(sUserName)
If res <> Dto_Success Then
LogResult("ユーザーの削除でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザー " & sUserName & " の削除は完了しました。")
End If
End If
m_dbn.Close
End Function
Open
指定したユーザー名とパスワードでデータベースへの接続を開きます。
構文
result = Object.Open(username, password)
引数
Object
DtoDatabase オブジェクト
username
データベース用のユーザー名です。データベースにセキュリティが設定されていない場合、空の文字列を設定します。
password
データベース用のパスワードです。データベースにセキュリティが設定されていない場合、空の文字列を設定します。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
備考
この操作は、辞書ファイルのセットを開く手段として使用されます。このセットには、FILE.DDF、INDEX.DDF および FIELD.DDF が含まれます。また、多くのオプション DDF ファイルも含まれています。メモリを解放するために Close メソッドを呼び出すことを忘れないでください。データベースを一度開くと、Close メソッドが呼び出されるまでほかの誰もその辞書セットに変更を行うことができません。
データベースが開いている間は、Secure または UnSecure メソッドを実行できません。
このメソッドで返されるエラーの詳細については、DtoSession オブジェクトError プロパティを使って取得することができます。
Dim m_session as new DtoSession
Dim m_database as new DtoDatabase
Dim result as DtoResult
result = m_session.Connect("myserver","user","pwd")
m_database.Session = m_session
m_database.Name = "DEMODATA"
result = m_database.Open("dbuser","pwd")
RemoveUserFromGroup
既存のグループから既存のユーザーを削除します。
構文
result = Object.RemoveUserFromGroup(groupnamem, username)
引数
Object
Dtodatabase オブジェクト。
groupname
データベース グループ名
username
データベース ユーザー名
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。
備考
以下の前提条件を満たす必要があります。
まずセッションを作成し、次に Open を使って、"Master" ユーザーとしてデータベースを正常に開いておく。
関連するデータベースはデータベース レベルのセキュリティが有効である。
ユーザーおよびグループは指定したデータベースに既に存在している。
ユーザーは別のグループのメンバーではない。
次の事後条件を満たす必要があります。
Close を使ってデータベースを閉じ、リソースを解放する。
Function RemoveUserFromGroup(sUserName As String, sGroupName As String) As Boolean
Dim res As dtoResult
Dim m_dbn As New DtoDatabase
Dim m_dbn.Session = m_dto
Dim m_dbn.Name = "demodata"
res = m_dbn.Open("Master", "1234")
If res = Dto_Success Then
'正常に開いたら、グループからユーザーを削除しましょう
res = m_dbn.RemoveUserFromGroup(sGroupName, sUserName)
If res <> Dto_Success Then
LogResult("グループからのユーザーの削除でエラーが発生しました:" & CStr(res))
Else
LogResult("ユーザー " & sUserName & " をグループ " & sGroupName & " から削除しました。")
End If
End If
m_dbn.Close
End Function
Secure
データベースのセキュリティを有効にします。
構文
result = Object.Secure(user, password)
引数
Object
DtoDatabase オブジェクト
user
データベースのセキュリティを有効にできる「Master」として設定するユーザー。
password
Master ユーザーのパスワード。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
備考
データベースのセキュリティを有効にする際、データベース ユーザーとして Master を指定し、パスワードを選択する必要があります。データベースのセキュリティは、そのデータベースに定義されているアクセス権に基づいて施行されます。このセキュリティは SQL または ODBC インターフェイスで見られる動作と一致します。
セキュリティを設定する場合は、データベースが閉じていることを確認してください。
このメソッドで返されるエラーの詳細については、DtoSession オブジェクトError プロパティを使って取得することができます。
Dim m_database as new DtoDatabase
Dim result as DtoResult
m_database.Name = "DEMODATA"
m_database.Session = my_session 'セッションが存在すると仮定
result = m_database.Secure("Master", "password")
UnSecure
データベースのセキュリティを無効にします。
構文
result = Object.UnSecure(user, password)
引数
Object
DtoDatabase オブジェクト
user
データベースのセキュリティを無効にできる「Master」として設定するユーザー。
password
Master ユーザーのパスワード。
戻り値
result
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
備考
データベースのセキュリティを無効にする際、データベース ユーザーとして Master を指定し、Master ユーザー パスワードを提供する必要があります。
セキュリティを無効にする場合は、データベースが閉じていることを確認してください。
このメソッドで返されるエラーの詳細については、DtoSession オブジェクトError プロパティを使って取得することができます。
Dim m_database as new DtoDatabase
Dim result as DtoResult
m_database.Name = "DEMODATA"
m_database.Session = my_session 'セッションが存在すると仮定
result = m_database.UnSecure("Master", "password")