データベースへの接続の設定オプションを実行時に決定できるようにします。
各データストアの設定オプションを GeneXus オブジェクトから実行時に変更できるようにするには、DBConnection データタイプの変数を定義する必要があります。このためには、GetDataStore 関数を使用してこの変数を特定の接続 (GeneXus
データストア) に関連付け、プロパティとメソッドを使用してこの接続を管理します。
- Web アプリケーションでは、 [ Before Connect ] プロパティで参照されるプロシージャーでのみ接続設定を変更する必要があります。これは、Web アプリケーションのデータベース接続はプールを使って処理されるためです。Web オブジェクトのイベントや、Web オブジェクトのイベントによって呼び出されるプロシージャーの中で接続設定を変更してはなりません。
- Command Line プロシージャーの場合は、Connect() または Disconnect() メソッドを呼び出すと、そのメソッドが適用される接続で開いているカーソルが閉じることに注意してください。したがって、For Each コマンドの範囲内で Connect() や Disconnect() メソッドを呼び出してはなりません。開発者は、適切な時点で接続または切断されるように、これらのメソッドを使用する必要があります。たとえば、後で接続が必要なプロシージャーの途中で接続を切断すると、実行がキャンセルされることがあります。
重要: [
Before Connect ] プロパティが設定されている場合は、Connect() メソッドがそのプロシージャーを実行します。ただし、プロシージャーがオブジェクト内で参照される場合を除きます (無限ループを避けるため)。
1) コマンドラインプロシージャーでの JDBC 接続の設定
&MyConn は DBConnection タイプの変数です。
&myConn = GetDataStore(!"Default")
&myConn.UserName = trim(&User)
&myConn.UserPassword = trim(&Password)
&myConn.JDBCDriverName=!'com.inet.tds.TdsDriver'
&myConn.JDBCDriverURL=!'jdbc:inetdae:barbanegra:1433?database=testemp2'
&myConn.ShowPrompt = 2
&Res = &myConn.Connect()
Do case
Case &Res = 0
&ConnOk = !'Y'
return
Otherwise
&ConnOk = !'N'
msg('Unsuccessful connection, retry...')
Endcase
2) [ Before Connect ] プロパティで参照されるプロシージャーでの接続設定の変更:
[ Before connect ] プロパティを参照してください。
オブジェクト: Procedures、
Transactions、
Web Panels
言語: .NET、Java
外部ユーザーのデータをプロパティやメソッドに設定しないようにするか、エントリーを適切にサニタイズします。
GetDataStore 関数