PowerBuilder DataWindow检索参数不适用于SQL Server

时间:2015-01-19 10:14:28

标签: sql migration powerbuilder

早些时候我们使用Sybase作为后端。现在我们正在迁移到SQL服务器,前端保持不变,即PowerBuilder。

问题: 我有一个DataWindow代码,它带有两个检索参数adt_from_date和adt_to_date。两种日期格式。这适用于PB-Sybase组合,但SQL服务器会抛出错误37000。

这是我们的代码。如果我硬编码日期。即,例如如果我将'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

请就此提出建议。

1 个答案:

答案 0 :(得分:0)

我建议您查看加载到事务中的错误文本,而不仅仅是数字;它可能会更有帮助。如果我们谈论的是SQLState 37000,那就不会缩小它。

如果这还没有解释它,我会在PowerBuilder端或数据库端查看跟踪。从PB方面开始可能是最有意义的。如果您只是从IDE运行此DataWindow,则跟踪只是连接属性的复选框。如果在应用中,请更换您的" DBMS =' xxx'"使用" DBMS =' tra xxx'" (“连接到数据库”手册中描述了其他选项)。

祝你好运。