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

5.4 留意事項

サポートAPIの使用上の留意事項は以下のとおりです。各APIの詳細は、Microsoft社のMSDNライブラリを参照してください。

クラス名

メンバ

留意事項

SymfowareCommand

CommandText

  • SymfowareCommand.CommandTextプロパティでは、疑問符(?)のプレースホルダを使用してください。名前付きパラメタは使用できません。
    SymfowareCommand.CommandTextプロパティに名前付きパラメタを使用した場合、ExecuteNonQueryメソッド、ExecuteReaderメソッドまたはExecuteScalarメソッド実行時にエラーとなります。
    例:
    SELECT * FROM General.Customers WHERE CustomerID = ?

  • SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを利用した場合、疑問符プレースホルダの順序と、SymfowareParameterCollection.AddメソッドによりSymfowareParameterCollectionにSymfowareParameterオブジェクトを追加する順序を一致させてください。

  • SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを利用した場合、SymfowareParameter.ParameterNameプロパティにパラメタ名を指定しても、SymfowareParameterCollectionにSymfowareParameterオブジェクトを追加した順序で処理されます。

CommandTimeout

SymfowareCommand.CommandTimeoutプロパティへの設定値は無視されます。また、プロパティを参照すると、必ず0が返ります。コマンドの実行待ち時間を指定する場合は、SymfowareConnection.ConnectionStringプロパティのWAIT_TIMEを使用してください。

Dispose

以下のオブジェクトを生成すると、.NET Framework環境だけではなく、サーバ側にも資源が作成されます。

  • SymfowareCommandオブジェクト

  • SymfowareDataReaderオブジェクト

作成された資源は、不要になった時点でSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを実行することにより、即座に解放することができます。しかし、これらのメソッドを省略し、資源解放をガーベジコレクションに任せている場合、ガーベジコレクションは.NET Framework環境の空間を制御しているだけなので、サーバ側に無駄な資源が残る可能性があり、性能上の問題となります。これらのオブジェクトが不要となった場合は、必ずSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを指定し、解放してください。

ExecuteNonQuery

SymfowareCommand.CommandTextプロパティでは、疑問符(?)のプレースホルダを使用してください。名前付きパラメタは使用できません。
SymfowareCommand.CommandTextプロパティに名前付きパラメタを使用した場合、ExecuteNonQueryメソッド、ExecuteReaderメソッドまたはExecuteScalarメソッド実行時にエラーとなります。
例:
SELECT * FROM General.Customers WHERE CustomerID = ?

ExecuteReader

ExecuteScalar

SymfowareConnection

1つのSymfowareConnectionオブジェクトで、同時に実行可能なSymfowareCommandオブジェクトの数は、32000個です。

ConnectionString

SymfowareConnection.ConnectionStringプロパティには、Symfoware .NET Data Provider固有のキーワードを指定することができます。キーワードの詳細は、“付録B ConnectionStringプロパティのキーワード”を参照してください。

ServerVersion

SymfowareConnection.ServerVersionプロパティで取得するバージョンレベルの形式は、以下のとおりです。
VxxLyy
xxはSymfoware Serverのバージョンを、yyはSymfoware Serverのレベルを表します。バージョンおよびレベルは、それぞれ2桁で表示されます。

BeginTransaction

  • SymfowareConnection.BeginTransactionメソッドのIsolationLevelに“Chaos”、“Unspecified”および“Snapshot”は指定できません。指定するとエラーが返却されます。

  • システム用の動作環境ファイルのR_LOCKがNOまたはtuneparamキーワードのR_LOCKがNOの場合、SymfowareConnection.BeginTransactionメソッドのIsolationLevelにRepeatableReadを指定すると、独立性水準はSERIALIZABLEになります。

  • システム用の動作環境ファイルのR_LOCKがYESまたはtuneparamキーワードのR_LOCKがYESの場合、SymfowareConnection.BeginTransactionメソッドのIsolationLevelにSerializableを指定すると、独立性水準はREPEATABLE READになります。

SymfowareConnectionStringBuilder

SymfowareConnectionStringBuilderコンストラクタ

SymfowareConnectionStringBuilderコンストラクタに指定するConnectionStringには、eventlogキーワードおよびtuneparamキーワードを含むことはできません。

SymfowareDataReader

Close

以下のオブジェクトを生成すると、.NET Framework環境だけではなく、サーバ側にも資源が作成されます。

  • SymfowareCommandオブジェクト

  • SymfowareDataReaderオブジェクト

作成された資源は、不要になった時点でSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを実行することにより、即座に解放することができます。しかし、これらのメソッドを省略し、資源解放をガーベジコレクションに任せている場合、ガーベジコレクションは.NET Framework環境の空間を制御しているだけなので、サーバ側に無駄な資源が残る可能性があり、性能上の問題となります。これらのオブジェクトが不要となった場合は、必ずSymfowareCommand.Disposeメソッド、またはSymfowareDataReader.Closeメソッドを指定し、解放してください。

GetChars

SymfowareDataReader.GetCharsメソッドでは、すべての場合においてGetCharsを使用してVarChar列をチャンクとして読み取ることができます。

GetSchemaTable

他システムから接続しているコネクション数がMAX_CONNECT_TCPに指定した接続数に達している場合、SymfowareDataRearder.GetSchemaTableメソッドによりスキーマ情報を取得することはできません。

GetString

SymfowareDataReader.GetStringメソッドでは、変換は実行されません。そのため、取得するデータは文字列である必要があります。文字列でない場合は、例外が生成されます。

SymfowareError

SQLState

SymfowareError.SQLStateプロパティでは、SQLSTATEを取得します。

ToString

SymfowareError.ToStringメソッドで取得するエラーテキスト形式は以下のとおりです。
[Symfoware]JYPメッセージ番号 エラーメッセージ

SymfowareParameter

SymfowareParameterコンストラクタ

SymfowareParameterコンストラクタのパラメタ、またはSymfowareParamterのDirectionプロパティに、ParameterDirection.ReturnValueが指定されたSymfowareParameterオブジェクトには、SQL文を実行しても、何も値を設定しません。すでに値が設定されている場合には、そのまま返却します。

Direction

SymfowareDbType

SymfowareParameter.SymfowareDbTypeプロパティに指定可能なデータ型の詳細は、以下のとおりです。既定値はVarCharです。

  • BLOB

  • Char

  • VarChar

  • NChar

  • NCharVarying

  • Date

  • Time

  • Timestamp

  • Numeric

  • Decimal

  • Real

  • DoublePrecision

  • SmallInt

  • Int

  • IntervalYear

  • IntervalMonth

  • IntervalYearToMonth

  • IntervalDay

  • IntervalDayToHour

  • IntervalDayToMinute

  • IntervalDayToSecond

  • IntervalHour

  • IntervalHourToMinute

  • IntervalHourToSecond

  • IntervalMinute

  • IntervalMinuteToSecond

  • IntervalSecond

ParameterName

SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを利用した場合、SymfowareParameter.ParameterNameプロパティにパラメタ名を指定しても、SymfowareParameterCollectionにSymfowareParameterオブジェクトを追加した順序で処理されます。

SymfowareParameterCollection

Add

SymfowareCommand.CommandTextプロパティに疑問符プレースホルダを利用した場合、疑問符プレースホルダの順序と、SymfowareParameterCollection.AddメソッドによりSymfowareParameterCollectionにSymfowareParameterオブジェクトを追加する順序を一致させてください。

SymfowareTransaction

IsolationLevel

SymfowareTransaction.IsolationLevelプロパティの既定値は、“ReadUncommitted”です。