ODBC対応開発ツールで開発する場合に、運用時によくある質問と、その回答について説明します。
ODOS接続(Accessのクエリ機能)によるTIME型の条件指定の記述方法は?
Symfoware Serverの仕様では、SQL文の文字列定数の場合には“TIME ‘12:53:15’”と記述しますが、変数指定を使用する場合には文字列データ“12:53:15”として扱う必要があります。
Accessでもクエリの検索条件に指定する窓は文字列データとして扱うようになっています。
そのため、検索条件には文字列の表現で指定してください。
12:53:15
ASPアプリケーションから、VBScriptを使用してTIME型のデータを表示する際、時間だけを表示するには?
以下の方法で時間だけを表示することができます。
表示形式 | 方法 |
---|---|
AMPM h:mm:ss | VBScriptのFormatDateTime関数を使用してTime型データを表示 |
h:mm | VBScriptのFormatDateTime関数を使用してTime型データを表示 |
h:mm:ss | SQL文のCAST指定でTime型データを取り出す |
RDOやADOでのトランザクション制御はコネクション単位で行います。
以下に、RDOとADOのトランザクション制御のサンプルアプリケーションの例を示します。
'オブジェクト宣言 Dim Env As rdoEnvironment Dim Con As rdoConnection 'rdoEnvironmentオブジェクトの生成 Set Env = rdoEngine.rdoEnvironments(0) On Error GoTo ErrorProc '1. コネクション接続 Set Con = Env.OpenConnection("DSN01", rdDriverNoPrompt, _ False, "UID=USER01;PWD=PASS01;") '2. SET TRANSACTION文を実行する Con.Execute "SET TRANSACTION READ WRITE, ISOLATION LEVEL READ COMMITTED", rdExecDirect '3. トランザクション開始 Con.BeginTrans 'データ操作を行う処理を記述 '4. コミット Con.CommitTrans '5. コネクション切断 Con.Close '6. オブジェクトの破棄 Set Con = Nothing Set Env = Nothing Exit Sub 'エラー処理 ErrorProc: '4. ロールバック Con.RollbackTrans 'エラー処理ルーチンを記述します
'オブジェクト宣言 Dim Con As Connection 'Connectionオブジェクトの生成と設定 Set Con = New Connection Con.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01;" On Error GoTo ErrorProc '1. コネクション接続 Con.Open '2. アクセスモードの設定 Con.Execute "SET TRANSACTION READ WRITE", , adCmdText '3. IsolationLevelの設定 Con.IsolationLevel = adXactReadCommitted '4. トランザクション開始 Con.BeginTrans 'データ操作を行う処理を記述 '5. コミット Con.CommitTrans '6. コネクション切断 Con.Close '7. オブジェクトの破棄 Set Con = Nothing Exit Sub 'エラー処理 ErrorProc: '5. ロールバック Con.RollbackTrans 'エラー処理ルーチンを記述
ODBCドライバ使用時の注意事項は?
ODBCドライバを使用する場合には、以下の注意事項があります。
ODBC接続を利用した環境から、各国語文字列型のパラメタまたはSQL変数を宣言したプロシジャルーチンを実行することはできません。
VisualBasic、Accessなどのリモートデータベースアクセス(RDA-SV)を行う場合、トランザクション命令を発行するようなプロシジャルーチンを呼び出すことはできません。呼び出した場合、トランザクション管理文(COMMIT文、ROLLBACK文)はエラーになります。