SymfowareConnectionクラスで拡張したAPIは、以下のメンバです。
接続するSymfoware Serverのホスト名を取得します。
public string Host {get;}
Public ReadOnly Property Host As String
接続するSymfoware Serverのホスト名。
リモートアクセスで使用するポート番号を取得します。
public int Port {get;}
Public ReadOnly Property Port As Integer
リモートアクセスで使用するポート番号。
データベース トランザクションを開始します。既存のオーバーロードに加え、以下のオーバーロードを使用することができます。
アクセスモードを指定して、データベース トランザクションを開始します。
public SymfowareTransaction BeginTransaction(SymfowareAccessMode accessMode);
Public Function BeginTransaction (accessMode As SymfowareAccessMode) As SymfowareTransaction
アクセスモードと分離レベルを指定して、データベース トランザクションを開始します。
public SymfowareTransaction BeginTransaction (IsolationLevel level, SymfowareAccessMode accessMode);
Public Function BeginTransaction (level As IsolationLevel,accessMode As SymfowareAccessMode) As SymfowareTransaction
public SymfowareTransaction BeginTransaction (IsolationLevel level, SymfowareAccessMode accessMode);
Public Function BeginTransaction (level As IsolationLevel,accessMode As SymfowareAccessMode) As SymfowareTransaction
接続のトランザクション ロック動作を指定します。
IsolationLevel.ReadCommittedを指定した場合、ほかのトランザクションで追加および更新されたデータはそのトランザクションがCOMMITするまで検索することはできません。
ただし、検索する表が、DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の場合には、ほかのトランザクションがCOMMITするまでの間は、追加および更新がなされる前のデータを検索することができます。
いずれの場合も、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。
- 検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合
- 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合
IsolationLevel.ReadUncommittedを指定した場合、ほかのトランザクションで追加および更新されたデータをそのトランザクションがCOMMITされる前に検索することができます。
ただし、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。
- ほかの利用者の更新系のトランザクションがCOMMITされる前に、その更新したデータの検索をした場合
- 検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合
- 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合
IsolationLevel.RepeatableReadを指定した場合、ほかのトランザクションで追加および更新されたデータはそのトランザクションがCOMMITするまで検索することはできません。
ただし、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。
- 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合
IsolationLevel.Serializableを指定した場合、ほかのトランザクションで追加および更新されたデータは、そのトランザクションがCOMMITされるまで検索することはできません。
Symfoware .NET Data Providerでは、指定できません。
指定すると、エラーが返却されます
Symfoware .NET Data Providerでは、指定できません。
指定すると、エラーが返却されます
Symfoware .NET Data Providerでは、指定できません。
指定すると、エラーが返却されます
トランザクションのAccessMode列挙体のパラメタを指定します。
トランザクション内で参照系のSQL文のみ、実行することができます。
トランザクション内で参照系および更新系のSQL文を実行することができます。
新しいトランザクションを表すオブジェクト。
例外の種類 | 条件 |
---|---|
ArgumentException | 無効な引数が指定されました。 |
InvalidOperationException | 並列トランザクションはサポートされていません。 |
一時表に格納したデータを削除し、一時表の領域を解放します。
public void ReleaseTable (String schemaName, String tableName);
Public Sub ReleaseTable (schemaName As String,tableName As String)
スキーマの名前。
解放する一時表の名前。
注意
Symfoware/RDBのサーバ側に存在しないスキーマ名、またはテーブル名を指定した場合は、削除対象の一時表がないため、削除処理を中止して正常復帰します。
例外の種類 | 条件 |
---|---|
ArgumentException | schemaName、またはtableNameに、NULLまたは空文字列が指定されました。 |
InvalidOperationException | SymfowareConnectionがクローズされました。 |
SymfowareException | データベースアクセスエラーが発生しました。 |
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(); } } }
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
現行SQLセションに対してロールを有効にします。
public void SetRole (String roleName, Int32 roleType);
Public Sub SetRole (roleName As String,roleType As Integer)
ロール名。現行SQLセションに対して有効にするロールの名前を指定します。実行者はロールの権限受領者でなければなりません。ロール名に空白を含めた場合は、前後の空白を取り除いた値をロール名とします。
ロール種別。以下のいずれかの値を指定します。
現行SQLセションでデフォルトロールの設定を有効にします。
現行SQLセションで有効となっているロールを無効にします。
注意
roleTypeに1または2を指定した場合、roleNameの指定は無効となります。
Symfoware/RDBのサーバ側に存在しないロール名を指定した場合は、設定対象のロールがないため、設定処理を中止して正常復帰します。
例外の種類 | 条件 |
---|---|
ArgumentException | roleTypeに0、かつ、roleNameにNULLまたは空文字列が指定されました。 |
InvalidOperationException | SymfowareConnectionがクローズされました。 |
SymfowareException | データベースアクセスエラーが発生しました。 |
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(); } } }
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
Symfoware/RDBで利用者の認証情報を管理している場合、現行セションの利用者(認可識別子)のパスワードを変更します。
public void SetUserPassword (String password);
Public Sub SetUserPassword (password As String)
変更後のパスワード。
変更後のパスワードを指定します。文字列定数、または文字列型の埋込み変数で指定してください。
変更後のパスワードは、現在使用しているパスワードに対し、3文字以上違うものでなければなりません。また、大文字と小文字は同じ文字として扱います。
パスワードに空白を含めた場合は、前後の空白を取り除いた値をパスワードとします。
パスワードの更新に失敗した場合、例外が返ります。
参照
パスワードの指定形式の詳細については、“SQLリファレンス”の“CREATE USER文(利用者定義文)”を参照してください。
例外の種類 | 条件 |
---|---|
ArgumentException | passwordにNULLまたは空文字列が指定されました。 |
InvalidOperationException | SymfowareConnectionがクローズされました。 |
SymfowareException | 指定したパスワードが、“解説”に記載されている内容を満たしていません。 |
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(); } } }
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