2017-02-08 22 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))) 

을 실행하는 구성이다. 동일한 매개 변수로 프로 시저를 실행할 때 감사 기록이 반환됩니다. 테스트를 위해 datawindow를 실행할 때 레코드를 반환 할 때 더 그렇습니다. 프로그램을 시작할 때만 레코드가 없습니다. 나는 SQL Profiler에 의한 검사조차도 가지고 있으며 프로 시저가 전혀 실행되지 않는다는 것을 깨달았습니다. 방법 Retrieve 저장 프로 시저를 실행할 때?

저는 PowerBuilder를 배우기 시작했습니다. 누구든지 나를 도울 수 있을까? 미리 감사드립니다. Piotr

답변

0

문제가 데이터베이스 클라이언트에있었습니다. 응용 프로그램 PB의 데이터베이스 프로필에서 Microsoft SQL Server Native Client 10.0을 사용하지만 응용 프로그램을 실행하는 컴퓨터에서 Microsoft SQL Server Native Client 11.0 (ODBC 데이터 소스 관리자에서 정의 됨)을 사용합니다. 동일한 클라이언트에 대한 변경 후 : Microsoft SQL Server Native Client 10.0 완벽하게 시작됩니다.

2

settransobject 메서드는 정수를 반환합니다. -1이면 트랜잭션 오브젝트 (SQLCA라고하는 전역 오브젝트)에 문제점이 있습니다. 연결 매개 변수가 잘못된 것일 수 있습니다. SQLCA로 연결할 때 SQLCode를 점검하여 문제점을 판별하는 데 도움이됩니다.

+0

DataWindow 객체'dw_logged_get'에 문제가있는 경우'SetTransObject'도 -1을 반환 할 수 있습니다. –