2017-02-08 14 views
0

PowerBuilderで書かれたプログラムに問題があります。コードがあります:データウィンドウの下PowerBuilderデータウィンドウで結果が返されない

DataStore ds_logged_get 
ds_logged_get= CREATE DataStore 
ds_logged_get.dataobject = 'dw_logged_get' 
ds_logged_get.settransobject(sqlca) 
ds_logged_get.Retrieve(pn_login, pn_domain, ls_ip_addr) 
If ds_logged_get.RowCount() > 0 Then 

は残念ながらラインds_logged_get.RowCount()が0レコードを返す手続きst_loggedGet

procedure="1 execute dbo.st_loggedGet;1 @login = :login, @Domain = :Domain , @IP = :IP" arguments=(("login", string),("Domain ", string),("IP", string))) 

を実行するように設定しています。私は同じパラメータを持つプロシージャを実行すると、それは感謝の記録を返します。さらに、データウィンドウをテスト用に実行すると、レコードも返されます。私はプログラムを開始するときだけレコードがありません。私はSQLプロファイラでチェックしても、プロシージャがまったく実行されていないことに気付きました。メソッドRetrieveがストアプロシージャを実行しているとき?

私はPowerBuilderの学習を始めました。誰か助けてくれますか? ありがとうございます。 Piotr

答えて

0

問題は、クライアントのデータベースに問題があります。 アプリケーションPBのデータベースプロファイルでは、Microsoft SQL Serverネイティブクライアント10.0を使用しますが、アプリケーションを実行するコンピュータでは、Microsoft SQL Serverネイティブクライアント11.0(ODBCデータソース管理者で定義)を使用します。 同じクライアントの変更後:Microsoft SQL Server Native Client 10.0は完全に起動します。

2

settransobjectメソッドは整数を返します。 -1の場合、トランザクション・オブジェクト(SQLCAと呼ばれるグローバル・オブジェクト)に問題があります。あなたの接続パラメータでは何かが間違っている可能性があります。何が問題なのかを判断するために、SQLCAに接続するときにSQLCodeをチェックすることができます。

+0

'SetTransObject'は、データウィンドウオブジェクト' dw_logged_get'に何か問題がある場合に-1を返すこともあります。 –

関連する問題