怎样在在SQL语句中实现变量查询?我在论坛等了一天的答案了,还是没人知道!!!!!!

hefeigunfire 2003-08-20 07:03:32
用ADO:
m_pRecordset->Open("SELECT * FROM TestDataTable WHERE [Sr]=m_eSr", theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
m_eSr为我定义的double型变量,其值实时改变。编译没有错误,运行的时候会出现这个错误对话框:
Runtime Error!
Program:D:\DBProg\Debug\DBProg.exe

This application has requested the Runtime to
terminate it in an unusual way.Please contact the
applicatuion's support team for more nformation

但是如果把m_eSr换成"SELECT * FROM TestDataTable WHERE Sr=0.45"就可以。我想可能是变量的问题,我把语句换成了"SELECT * FROM TestDataTable WHERE Sr=m_eSr"也不行,跟SELECT * FROM TestDataTable ORDER BY ABS(TSR-[Sr])一样,所以是不是SQL语句的格式写错了?

...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hefeigunfire 2003-08-22
  • 打赏
  • 举报
回复
谢谢各位 我自己搞出来了 感谢各位给我提供了思路
bokesoft 2003-08-21
  • 打赏
  • 举报
回复
首先,你这个问题问错地方了!
其次,错误到底出在什么地方,单步调试一下把问题的原应找到,到底是在open的时候,还是在做其它操作(比如说movenext)的时候
你的[Sr]怎么定义的啊,double类型相等比较不能用=的吧?
chump 2003-08-21
  • 打赏
  • 举报
回复
数据库的版本和MDAC的版本是否匹配呢?
SQL 2000应该用2.7或以上!
webswim 2003-08-21
  • 打赏
  • 举报
回复
上面漏了: m_pRecordset->Open(m_sSql,theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic,adCmdText)
webswim 2003-08-21
  • 打赏
  • 举报
回复
你先定义一个字符串变量m_sSql = "SELECT * FROM TestDataTable WHERE [Sr]= " + ltoa(m_eSr), 然后在m_pRecordset->Open.

再者,“m_eSr为我定义的double型变量,其值实时改变”一句是什么意思? 即使m_eSr实时改变,你取的记录集也不会实时改变的,除非你重新m_pRecordset->Open!

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧