delphi查询sql server数据库中表时出的问题,不知怎么解决,望高手指点!

cococenstar 2012-03-01 10:03:28
我记得应该是用单引号的。当我改为SJQ_ID<>'Q01'
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'Q01' Order By BDZ_ID'),
问题如下:
[Error] nb_tree.pas(134): ')' expected but identifier 'Q01' found
[Error] nb_tree.pas(134): Statement expected, but expression of type 'String' found
我把'Q1'改为"Q01"和Q01,问题提示是一样的,如下。
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>Q01 Order By BDZ_ID'),如下:
Projiect Cb32_bb.exe raised exception class EDBEngineError with message'Invalid field name.
[Microsoft][ODBC SQL Driver][SQL Server]列名'Q01'无效。'
这到底是怎么回事!!!
...全文
174 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cococenstar 2012-03-02
  • 打赏
  • 举报
回复
十分感谢大家的回复。再次谢谢大家了。
山东蓝鸟贵薪 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kaikai_kk 的回复:]
D里面字符串上单引号是2个变1个

比如''A'',运行后结果是'A',你的问题要在Q01两边各再加1个引号
[/Quote]
当然了,建议用一个showmessage();
显示一当前的SQL语句是否标准
kaikai_kk 2012-03-02
  • 打赏
  • 举报
回复
D里面字符串上单引号是2个变1个

比如''A'',运行后结果是'A',你的问题要在Q01两边各再加1个引号
山东蓝鸟贵薪 2012-03-02
  • 打赏
  • 举报
回复
建议统一SQL语句为string型
Lewolf 2012-03-01
  • 打赏
  • 举报
回复
对于可变条件,最好使用参数,当然完全用string组合也是可以的,但这个是会被注入的,使用参数变不会的。
我看见佛 2012-03-01
  • 打赏
  • 举报
回复
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'+quotedstr('Q01')+' Order By BDZ_ID'),

quotedstr('Q01')是为字符串+上单引号,而DELPHI中''两个单引号在字符串中代表一个单引号

SQL SERVER 语句中 SJQ_ID<>'Q01'字符串是要加‘号的
我看见佛 2012-03-01
  • 打赏
  • 举报
回复
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'Q01' Order By BDZ_ID'),  
改成
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'+quotedstr(Q01)+' Order By BDZ_ID'),

Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>''Q01'' Order By BDZ_ID' )
lzg827 2012-03-01
  • 打赏
  • 举报
回复
我记得应该是用单引号的。当我改为SJQ_ID<>'Q01'时
Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>''Q01'' Order By BDZ_ID' )
这样就OK了
''和“是不同的
要用英文输入发下的两个单引号

2,495

社区成员

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

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