PowerBuilder データベース接続プール?方法
-
02-07-2019 - |
質問
PowerBuilder (v9+) でデータベース接続プールを作成する方法...
- ...ODBC?
- ...SQLサーバー?
- ...オラクル?
解決
残念ながら、少なくとも PB 9 ではそれはできません。 ネイティブに. 。PB は常に 2 層の開発ツールでした。ただし、PB 9 で開始された WebServices サポートを使用している場合は、接続プールされた appServer で WebServices を呼び出すことで、この制限を回避できます。ところで、私はまだ PB 11.5 でプレイしたことがありません。そこは違うかもしれない。
ジェイソン
他のヒント
自己宣伝というリスクは承知の上で、Oracle を始めるきっかけとなるかもしれません:
に行くなら Sybaseマニュアル (直感的ですね?)、表示しているバージョンの『データベースへの接続』マニュアルに移動します。「プール」を検索すると効果的です。11.5 のローカル コピーを見ると、SNC (MS) と ODBC への参照が見つかります。
「非ネイティブ」というアプローチに関して言えば、ジェイソンはアプリケーション サーバーとの接続プールを指し、そこからデータを取得することを指していたのではないかと思います。
幸運を。
PowerBuilder バージョン 9 以降で Oracle ネイティブ ドライバを使用し、Oracle 9i 以降のデータベースに接続すると、次のコマンドを使用してプール内の接続を維持するように Oracle に指示できます。 CnnPool='はい' データベースパラメータ:
PB 11.1 ドキュメントからの追加情報:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc33820_1110/html/dbparm/BJEBJADI.htm
そんなこと信じない
CnnPool='はい'
サポートされました 正式に PB9で。
ほとんどの PB 開発者がプールの扱い方に精通しているかどうかはわかりません。
ASP.Net のアプローチは、少なくともいくつかの Java アプリ サーバーでの私の経験と比較すると、シンプルで簡単です。(最後の文で炎上戦争を始めないでください、私は私の経験を言いました)。
ds.retrieve() および ds.update() に対して実行される PB データストアを受信し、そのデータをクライアント PB アプリに返す「サーバー」アプリケーションを作成しました。それはプールへの道でした。サーバー アプリケーションは複数の接続を開きます...私はこれを PB 8 で行いました (どこかに本があります)。このアプローチはお勧めしません...たくさんのコード。
PB 11.x には、考慮すべき優れた新しいアプローチがいくつかあります。
@ジェイソン・ヴォーゲル...
あなたは私にはできないと言った ネイティブに ...それでは、別の方法があるのでしょうか?
/* インスタンス変数として宣言*/
n_to_server i_to_server //SQLCA に代わるトランザクション オブジェクト。i_to_server は n_to_server と同様にカスタム名です
/* 接続オブジェクトをインスタンス化します*/
i_to_server = create transaction //は、n_to_serverからのインスタンス変数で宣言されました
i_to_server.DBMS = "ODBC"
i_to_server.AutoCommit = TRUE
i_to_server.DBParm = "ConnectString='DSN=ソースサーバー;UID=ユーザー名;PWD=パスワード'"
i_to_server を使用して接続します。
SELECT @@trancount INTO :li_TranCount
システムオブジェクトから
WHERE 名 = 'sysobjects'
i_to_server を使用します。//SQLCA を使用しないトランザクション (ネイティブ トランザクション) では USING が必要です