2015-01-19 3 views
0

이전에는 Sybase를 백엔드로 사용했습니다. 이제 프런트 엔드가 PowerBuilder와 동일하게 유지되는 SQL 서버로 마이그레이션하고 있습니다.PowerBuilder SQL Server에서 데이터 윈도우 검색 인수가 작동하지 않습니다.

문제 : 나는 두 개의 검색 인수 adt_from_date 및 adt_to_date를 사용하는 데이터 윈도우 코드를 가지고 있습니다. 둘 다 날짜 형식. 이것은 PB-Sybase 조합에 대해서는 정상적으로 작동하지만 SQL 서버에 대해서는 오류 37000을 발생시킵니다.

다음은 Google 코드입니다. 날짜를 하드 코딩하면. 예를 들어 내가 바꾸면 : adt_from_date '20141001'. 코드가 제대로 작동합니다.

SELECT A.MEMBER_NO AS 'MEMBER_NO', 
ROUND(SUM(TRANSACTION_CHARGES),2) as 'AMOUNT', 
      SUBSTRING(DATENAME(MM, :adt_from_date),1,3) +'-'+substring(convert(varchar,datepart(YY, :adt_from_date)),3,2) as 'REASON' 

FROM  TRAN_SERVICE_TAX_DRV A, 
      MEMBER_MASTER B 

WHERE A.MEMBER_NO = B.MEMBER_NO 

AND  A.TRADE_DATE BETWEEN :adt_from_date AND :adt_to_date 

GROUP BY A.MEMBER_NO 

제발 뭔가를 제안하십시오.

+0

어떤 드라이버를 사용하고 있습니까? –

답변

0

숫자 대신 트랜잭션에로드되는 오류 텍스트를 살펴 보시기 바랍니다. 그것은 아마도 훨씬 더 도움이 될 것입니다. 우리가 SQLState 37000에 대해 이야기하고 있다면, 그만큼 좁혀지지는 않습니다.

그 점이 밝혀지지 않으면 PowerBuilder 쪽 또는 데이터베이스 쪽에서 추적하는 것이 좋습니다. PB 측면에서 시작하는 것이 아마도 가장 합리적입니다. IDE에서이 DataWindow를 실행중인 경우 추적은 연결 속성에 대한 체크 박스 일뿐입니다. 응용 프로그램에서 "DBMS = 'xxx'"를 "DBMS = 'tra xxx'"로 바꾸십시오 (데이터베이스에 연결 설명서에 설명 된 다른 옵션이 있습니다).

행운을 빈다.