我有一个查询应该使用Qt框架请求前X个记录来实际向SQL数据库发出请求。我已经验证了当我放置一个硬编码的数字时查询成功,但是当我尝试绑定它时,我收到错误。
query.prepare("SELECT TOP :numberToSelect"
" deviceId"
" , latitude"
" , longitude"
" , [timeStamp]"
" FROM Positions "
" WHERE [address] = ''"
" ORDER BY [timeStamp] DESC");
query.bindValue(":numberToSelect", numberMissing);
变量numberMissing是传入的unsigned short。执行时我收到此错误:
无法执行语句:“[Microsoft] [ODBC SQL Server驱动程序] [SQL 服务器]'@ P1'附近的语法不正确。 [Microsoft] [ODBC SQL Server 驱动程序] [SQL Server]语句无法准备。 QODBC3:无法解决 执行语句“”SELECT TOP? deviceId,纬度, 经度,[timeStamp] FROM位置WHERE [地址] ='' ORDER BY [timeStamp] DESC“
我看不出错误是什么。
答案 0 :(得分:2)
Oracle参数用前面的:
表示 - SQLServer最接近的等价物是@
符号。尝试将:numberToSelect
更改为@numberToSelect
。
答案 1 :(得分:1)