ADOQuery的动态加入SQL语句的细节!

Robin 2003-01-28 10:07:14
procedure TStudentForm.QuedingFlatSpeedButtonClick(Sender: TObject);
var
Sqlstr,
Boy,gril:string;
begin
if StudentQuery.Active=true then
StudentQuery.Active:=false;
StudentQuery.SQL.Clear;
boy:='男';
gril:='女';
if (ClassFlatEdit.Text<>'') And
(ClassMannumFlatEdit.Text<>'') And
(XueyuanNameFlatComboBox.Text<>'') And
(EnterSchTimeMaskEdit.Text<>'')
then
begin
Sqlstr:='Insert into 学校在籍学生情况表 values (';
Sqlstr:=Sqlstr+EnterschtimeMaskEdit.Text+',';
if BoyFlatCheckBox.Checked then
Sqlstr:=Sqlstr+'"'+boy+'"'+','
else
Sqlstr:=Sqlstr+'"'+gril+'"'+',';
Sqlstr:=Sqlstr+'"'+ClassFlatEdit.Text+'"'+','+'"'+ClassManNumFlatEdit.Text+'",'+'"'+XueyuanNameFlatComboBox.Text+'")';
end ;
StudentQuery.SQL.Add(Sqlstr);
StudentQuery.ExecSQL;
ShowMessage('添加数据成功!');

end;
不知道怎么就是不能执行!
我以为是我动态加入sql时的错误!
但是有找不出!
劳驾帮我改!
如果能提供理论知道的也加分!
在双节期间,加分双倍!
特此声名!
...全文
52 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
CRYSTAL_CN 2003-02-04
  • 打赏
  • 举报
回复
如何处理内连接,外连接,以及外联接中左外联接,右外联接:
支持Access中 查询,sql生成器,关于各种连接的语法,left join ,right join ,inner join ,具体语法,你自己去看看吧!
rzhou 2003-02-04
  • 打赏
  • 举报
回复
1:用QuotedStr() ,可以解决你的问题,用CHR(39)或CHR(34)太麻烦,更不能写''''+string+'''',如果这样ASP中的输入内容来进行SQL语句的攻击的BUG又来了..(这在DELPHI中也一样存在)
2对于执行这种没有返回结果的SQL语名,我建议用ADOCONNECTION的EXECUTE来执行,效益要高一点.
Robin 2003-02-04
  • 打赏
  • 举报
回复
出现这种错误提示是怎么了!

Query: CommandText does not retuen a return result set!
flymoon 2003-02-04
  • 打赏
  • 举报
回复
你是不是引号,在中文下输入?请在英文下输入.
cailiantao 2003-02-03
  • 打赏
  • 举报
回复
SQL里就有帮助关于连接的方式。
还有SQL也可以这样写
With adoquery1 do
Begin
Close;
SQL.Clear;
SQL.Add('');
Open;
End;
Robin 2003-02-03
  • 打赏
  • 举报
回复
继续 :
如何处理内连接,外连接,以及外联接中左外联接,右外联接!继续问了
anan8210 2003-01-30
  • 打赏
  • 举报
回复
我记得我曾今提过类似的问题,有位兄弟写了屏蔽函数,如果你有兴趣我可以发给你。
anan8210 2003-01-30
  • 打赏
  • 举报
回复
因为你打开帮助看看
''''代表{'}
你只有要在'select .....from...where ..id='''+edit1.text+''''
这时可以用到'''
其实在DELPHI里边''代表{'}自己看帮助吧!
idilent 2003-01-29
  • 打赏
  • 举报
回复
设置断点,在StudentQuery.ExecSQL前把sql取出来,到数据库中执行一下就知道了。
anan8210 2003-01-29
  • 打赏
  • 举报
回复
这里:
Sqlstr+'"'+boy+'"'+','
改为
sqlstr+''''+boy+''''+','
Black爷 2003-01-29
  • 打赏
  • 举报
回复
if application.MessageBox('Sqlstr','查看',1) =1 then
begin
StudentQuery.ExecSQL;
ShowMessage('添加数据成功!');
end;

这样在执行前可以看下Sqlstr是不是有语法问题。
我个很喜欢用 application.MessageBox 调试。
wangzn1979 2003-01-29
  • 打赏
  • 举报
回复
我发现在csdn上有很多这样的问题,
代码写的老长,错误找不到.
这个应该是调试方法的问题,有谁能写点调试方法,供大家参考那?
yoisyois 2003-01-29
  • 打赏
  • 举报
回复
Delphi6+ADO+win2000调试通过
yoisyois 2003-01-29
  • 打赏
  • 举报
回复
不好意思,我错了
Sqlstr:=Sqlstr+''''+boy+'''';
yoisyois 2003-01-29
  • 打赏
  • 举报
回复
Sqlstr:=Sqlstr+boy;
beata88 2003-01-29
  • 打赏
  • 举报
回复
这个东西错了:'"'
改成''''
ain2000 2003-01-29
  • 打赏
  • 举报
回复
不能用",只能用'
i2346 2003-01-29
  • 打赏
  • 举报
回复
'"'用'''代替
Robin 2003-01-29
  • 打赏
  • 举报
回复
再问:
为什么我们在插入数据的时候用''''代替'''呢!
Robin 2003-01-29
  • 打赏
  • 举报
回复
调试成功!~
讨论给分!
大家建议1
加载更多回复(5)

2,497

社区成员

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

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