Delphi7 的查询语句相关问题,求解!!!

lydia_chen 2012-05-02 03:05:36
给位高手,帮忙看看如下问题。就是Delphi 的一个条件查询,运行时总提示“A”列名无效,怎么个情况???

With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Select * From 客房信息表');
SQL.Add(' Where 配置 = A'); Open;
end;

若写成:SQL.Add(' Where 配置:= A'); 则提示“配置:”附近语法错误

求高手们帮看看,感谢~~~~~~~~


另外,请教一下,add()里面时常遇到引号的问题,能否告知这个引号怎么用呢
e.g:SQL.Add(' Where 配置= '''+edit1.text+''''); 这引号有什么意义?
...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox600123 2012-05-03
  • 打赏
  • 举报
回复
1.用转义符,单引号之前再加一个单引号
2.用 QuotedStr函数,返回带引号的字符
3.用Parameters.ParamByName传参(据说这种方式在Oracle中效率最高),但据我遇到的,在group by语句中无法使用此方式,至今未解决,查了很多资料,都说是ADO的问题。
garnel 2012-05-03
  • 打赏
  • 举报
回复
程序中使用引号可以用ASCII码,引号好像是#39,
kaikai_kk 2012-05-02
  • 打赏
  • 举报
回复
字符类型的字段,要用引号包括起来,整型可不用

如:t(A varchar(20),B Int)
-------------------------

A是字符类型,B是整型,正确的写法是这样:
select * from t where A='张三' and B=100

下面这样也是对的,SQL会自动转换
select * from t where A=10 and B='100'

但不能是下面这样:A和B条件都是错的;张三会当成字段名处理(此字段不存在),而李四则不能转换成整型
select * from t where A=张三 and B='李四'
「已注销」 2012-05-02
  • 打赏
  • 举报
回复
A要用引号包起来
我看见佛 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这么写试试:

Delphi(Pascal) code

With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Select * From 客房信息表 where 配置 = :para1');
Parameters.ParamByName('para1').Value := 'A';
open;
end;
……
[/Quote]补充下SQL.Add(' Where 配置 = ''A''');
mhhaifeng 2012-05-02
  • 打赏
  • 举报
回复
建议楼主 先系统学一下相关的基础知识
shuihan20e 2012-05-02
  • 打赏
  • 举报
回复
拼字符串,那引号的作用是,你的A是不是一个变量,如果是就如楼上写的
lovejiajia 2012-05-02
  • 打赏
  • 举报
回复
这么写试试:

With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' Select * From 客房信息表 where 配置 = :para1');
Parameters.ParamByName('para1').Value := 'A';
open;
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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