ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(.NET Data Provider編)

5.3.1 SymfowareConnectionクラス

SymfowareConnectionクラスで拡張したAPIは、以下のメンバです。

Hostプロパティ

接続するSymfoware Serverのホスト名を取得します。

記述形式
[C#]
public string Host {get;}
[Visual Basic .NET]
Public ReadOnly Property Host As String
プロパティ値

接続するSymfoware Serverのホスト名。

Portプロパティ

RDB2_TCP連携で使用するポート番号を取得します。

記述形式
[C#]
public int Port {get;}
[Visual Basic .NET]
Public ReadOnly Property Port As Integer
プロパティ値

RDB2_TCP連携で使用するポート番号。

BeginTransactionメソッド

データベース トランザクションを開始します。既存のオーバーロードに加え、以下のオーバーロードを使用することができます。

オーバーロードの一覧

アクセスモードを指定して、データベース トランザクションを開始します。

[C#] public SymfowareTransaction BeginTransaction(AccessMode);
[Visual Basic .NET] Public Function BeginTransaction (accessMode As SymfowareAccessMode) As SymfowareTransaction

アクセスモードと分離レベルを指定して、データベース トランザクションを開始します。記述形式、およびパラメタの詳細は、IsolationLevel、およびAccessModeを参照してください。

[C#] public SymfowareTransaction BeginTransaction (IsolationLevel, AccessMode);
[Visual Basic .NET] Public Function BeginTransaction (level As IsolationLevel,accessMode As SymfowareAccessMode) As SymfowareTransaction
記述形式
[C#]
public SymfowareTransaction BeginTransaction(SymfowareAccessMode accmod);
[Visual Basic .NET]
Public Function BeginTransaction (accmod As SymfowareAccessMode) As SymfowareTransaction
パラメタ
accmod

トランザクションのAccessMode列挙体のパラメタを指定します。

ReadOnly

読込み専用モード。

トランザクション内で参照系のSQL文のみ、実行することができます。

ReadWrite

更新可能モード。

トランザクション内で参照系および更新系のSQL文を実行することができます。

戻り値

新しいトランザクションを表すオブジェクト。

例外

例外の種類

条件

ArgumentException

無効な引数が指定されました。
または
必要な引数が指定されませんでした。

InvalidOperationException

並列トランザクションはサポートされていません。

ReleaseTableメソッド

一時表に格納したデータを削除し、一時表の領域を解放します。

記述形式
[C#]
public void ReleaseTable (String schemaName, String tableName);
[Visual Basic .NET]
Public Sub ReleaseTable (schemaName As String,tableName As String)
パラメタ
schemaName

スキーマの名前。

tableName

解放する一時表の名前。

例外

例外の種類

条件

ArgumentException

schemaName、またはtableNameに、NULLまたは空文字列が指定されました。

InvalidOperationException

SymfowareConnectionがクローズされました。
または
SymfowareDataReaderがオープン中です。

SymfowareException

サーバ側に存在しないスキーマ名、またはテーブル名が指定されました。

使用例
[C#]
public void ReleaseTableWithName(string modifiedTable)
{
    string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";
    SymfowareConnection conn1 = new SymfowareConnection(connString);

    try
    {
        conn1.Open();

        conn1.ReleaseTable("SC1",modifiedTable);

        conn1.Close();
    }
    catch (SymfowareException ex1)
    {
        // エラー処理ルーチンを記述
    }catch (Exception ex2)
    {
        // エラー処理ルーチンを記述
    }
    finally
    {
        if ((conn1!= null) && (conn1.State == ConnectionState.Open))
        {
            conn1.Close();
        }
    }
}
[Visual Basic .NET]
Public Sub ReleaseTableWithName(ByVal modifiedTable As String)
    Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user id=symfo;password=symfo;"
    Dim conn1 As New SymfowareConnection(connString)
    Try
        conn1.Open()
        conn1.ReleaseTable("SC1", modifiedTable)
        conn1.Close()
    Catch ex1 As SymfowareException
        'エラー処理ルーチンを記述
    Catch ex2 As Exception
        'エラー処理ルーチンを記述
    Finally
        If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then
            conn1.Close()
        End If
    End Try
End Sub

SetRoleメソッド

現行SQLセションに対してロールを有効にします。

記述形式
[C#]
public void SetRole (String roleName, Int32 roleType);
[Visual Basic .NET]
Public Sub SetRole (roleName As String,roleType As Integer)
パラメタ
roleName

ロール名。現行SQLセションに対して有効にするロールの名前を指定します。実行者はロールの権限受領者でなければなりません。ロール名に空白を含めた場合は、前後の空白を取り除いた値をロール名とします。

roleType

ロール種別。以下のいずれかの値を指定します。

0:ロール名指定
1:DEFAULT

現行SQLセションでデフォルトロールの設定を有効にします。

2:NONE

現行SQLセションで有効となっているロールを無効にします。

注意

roleTypeに1または2を指定した場合、roleNameの指定は無効となります。

例外

例外の種類

条件

ArgumentException

roleNameにNULLまたは空文字列が指定されました。
または
roleTypeに有効範囲外の値が設定されました。

InvalidOperationException

SymfowareConnectionがクローズされました。
または
SymfowareDataReaderがオープン中です。

SymfowareException

サーバ側に存在しないロール名が指定されました。

使用例
[C#]
public void ChangeRolesWithName(string roleName,int roleType)
{
    string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";
    SymfowareConnection conn1 = new SymfowareConnection(connString);

    try
    {
        conn1.Open();

        conn1.SetRole(roleName,roleType);

        conn1.Close();
    }
    catch (SymfowareException ex1)
    {
        // エラー処理ルーチンを記述
    }
    catch (Exception ex2)
    {
        // エラー処理ルーチンを記述
    }
    finally
    {
        if ((conn1!= null) && (conn1.State == ConnectionState.Open))
        {
            conn1.Close();
        }
    }
}

[Visual Basic .NET]
Public Sub ChangeRolesWithName(ByVal roleName As String, ByVal roleType As Integer)
    Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user id=symfo;password=symfo;"
    Dim conn1 As New SymfowareConnection(connString)
    Try
        conn1.Open()
        conn1.SetRole(roleName, roleType)
        conn1.Close()
    Catch exception1 As SymfowareException
        'エラー処理ルーチンを記述
    Catch exception2 As Exception
        'エラー処理ルーチンを記述
    Finally
        If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then
            conn1.Close()
        End If
    End Try
End Sub

SetUserPasswordメソッド

現行セションの利用者(認可識別子)のパスワードを変更します。

記述形式
[C#]
public void SetUserPassword (String password);
[Visual Basic .NET]
Public Sub SetUserPassword (password As String)
パラメタ
password

変更後のパスワード。

解説
  • 変更後のパスワードを指定します。文字列定数、または文字列型の埋込み変数で指定してください。

  • 変更後のパスワードは、現在使用しているパスワードに対し、3文字以上違うものでなければなりません。また、大文字と小文字は同じ文字として扱います。

  • パスワードに空白を含めた場合は、前後の空白を取り除いた値をパスワードとします。

  • パスワードの更新に失敗した場合、例外が返ります。

例外

例外の種類

条件

ArgumentException

passwordにNULLまたは空文字列が指定されました。

InvalidOperationException

SymfowareConnectionがクローズされました。
または
SymfowareDataReaderがオープン中です。

SymfowareException

指定したパスワードが、設定条件を満たしていません。

使用例
[C#]
public void ChangeUserPassword(string password)
{
    string connString = "data source=myhost;port=26551;initial catalog=company;user id=Symfo;password=Symfo;";
    SymfowareConnection conn1 = new SymfowareConnection(connString);

    try
    {
        conn1.Open();

        conn1.SetUserPassword(password);

        conn1.Close();
    }
    catch (SymfowareException ex1)
    {
        // エラー処理ルーチンを記述
    }
    catch (Exception ex2)
    {
        // エラー処理ルーチンを記述
    }
    finally
    {
        if ((conn1!= null) && (conn1.State == ConnectionState.Open))
        {
            conn1.Close();
        }
    }
}

[Visual Basic .NET]
Public Sub ChangeUserPassword(ByVal password As String)
    Dim connString As String = "data source=myhost;port=26551;initial catalog=company;user id=symfo;password=symfo;"
    Dim conn1 As New SymfowareConnection(connString)
    Try
        conn1.Open()
        conn1.SetUserPassword(password)
        conn1.Close()
    Catch exception1 As SymfowareException
        'エラー処理ルーチンを記述
    Catch exception2 As Exception
        'エラー処理ルーチンを記述
    Finally
        If ((Not conn1 Is Nothing) And (conn1.State = ConnectionState.Open)) Then
            conn1.Close()
        End If
    End Try
End Sub