再会!
我收到此错误:
SQL STATE 37000 [Microsoft][ODBC Microsoft Access Driver] 尝试在 Powerscript 上运行嵌入式 SQL 语句时出现语法错误或访问冲突。
我正在使用 MsSQL Server 2008 和 PowerBuilder 10.5,操作系统是 Windows 7。我能够确定导致问题的查询之一:
SELECT top 1 CONVERT(DATETIME,:ls_datetime)
into :ldtme_datetime
from employee_information
USING SQLCA;
if SQLCA.SQLCODE = -1 then
Messagebox('SQL ERROR',SQLCA.SQLERRTEXT)
return -1
end if
datetime()
通过使用PowerBuilder的功能,我能够想出一个解决方案。但是程序的其他部分导致了这种情况,我很难确定程序的哪一部分导致了这种情况。我觉得这很奇怪,因为我在这里运行相同的脚本dev-pc
完全没有问题,但是当尝试在我的客户端工作站上运行程序时,我收到了这个错误。我没有发现工作站和我的dev-pc
. 我也尝试按照此处的说明进行操作,但问题仍然存在。
更新:我能够识别导致问题的其他脚本:
/////////////////////////////////////////////////////////////////////////////
// f_datediff
// Computes the time difference (in number of minutes) between adtme_datefrom and adtme_dateto
////////////////////////////
decimal ld_time_diff
SELECT top 1 DATEDIFF(MINUTE,:adtme_datefrom,:adtme_dateto)
into :ld_time_diff
FROM EMPLOYEE_INFORMATION
USING SQLCA;
if SQLCA.SQLCODE = -1 then
Messagebox('SQL ERROR',SQLCA.SQLERRTEXT)
return -1
end if
return ld_time_diff
似乎传递日期时间变量会导致上述错误。其他脚本工作正常。