这是怎么回事?ADOQuery1的语句中不可以用where 条件?

hotel9545 2003-10-17 12:22:25
这是怎么回事?ADOQuery1的语句中不可以用where 条件?

一用说参数类型不匹配?为什么?
...全文
55 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotel9545 2003-10-23
  • 打赏
  • 举报
回复
同意kevin218(张智勇) 的说法
angle097113 2003-10-17
  • 打赏
  • 举报
回复
数据库的字段的类型和你的参数的类型不匹配
贴出代码来看看吧
huojiehai 2003-10-17
  • 打赏
  • 举报
回复
你输入的数据的类型和数据库中的对应字段的类型不匹配当然会出错啦
hnhb 2003-10-17
  • 打赏
  • 举报
回复
把你的代码贴出来看看
noil0125 2003-10-17
  • 打赏
  • 举报
回复
你的sQL语句?
snjun 2003-10-17
  • 打赏
  • 举报
回复
不用改字段名,用[]框起来就行了
kevin218 2003-10-17
  • 打赏
  • 举报
回复
关键字当然不能用啦,还有注意就是sqlserver里的语句可以在access中执行
但是,反过来就不行,因为access中的单引号用“#”来表示;
再就是:sql语句先放进后台执行,如果可以再放进前台程序中。
hotel9545 2003-10-17
  • 打赏
  • 举报
回复
问题已经解决我想结贴,但为什么结不了,请CSDN的版主解决!!!
IORILI 2003-10-17
  • 打赏
  • 举报
回复
类型不匹配,
hotel9545 2003-10-17
  • 打赏
  • 举报
回复
哇!!! 问题解决了,气死了,原来我的字段名不应该用 password 这个敏感的词,

换个名字就行了,多谢大家!

马上给分!
hotel9545 2003-10-17
  • 打赏
  • 举报
回复

专门做的测试段,可以在Edit1中输入SQL这是执行按钮的事件程序,

只能通过select 查询不能通过“Update”

procedure TForm1.Button1Click(Sender: TObject);
var num:integer;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Edit1.Text);
num:=ADOQuery1.ExecSQL;
showmessage('执行成功:'+intToStr(Num)+'条记录!');
end;

end.
good_cyg 2003-10-17
  • 打赏
  • 举报
回复
单步运行看看sql语句是否正确,主要看数据类型 及''匹配。
dickeybird888 2003-10-17
  • 打赏
  • 举报
回复
你的grade的类型为字符行的,所以应该如下写:

ADOQuery1.SQL.Add('select * from admin where grade<>''1''');
hotel9545 2003-10-17
  • 打赏
  • 举报
回复
ShowMessage(mySql);
的输出是:

Update admin set name='abc',password='abc' where name='bbb'

可是却“Update 语句语法错误”
hwyang80 2003-10-17
  • 打赏
  • 举报
回复
ADOQuery1.SQL.Add('select * from admin where grade<>''1''');


问题就出在着里
试着在where子句中加适当的''就可解决问题
xuejinlong 2003-10-17
  • 打赏
  • 举报
回复
ADOQuery1.SQL.Add('select * from admin where grade<>''1''');
xuejinlong 2003-10-17
  • 打赏
  • 举报
回复
MySql:='Update admin set name='''+Edit1.Text+''', password='''+PassChange(Edit1.Text)+''' where name='''+ComboBox1.Text+'''';
hotel9545 2003-10-17
  • 打赏
  • 举报
回复
都试了,ACCESS中的grade 绝对是整型的,唉刚用Delphi就是这样??

这个更新数据的也不行:
MySql:='Update admin set name="'+Edit1.Text+'", password="'+PassChange(Edit1.Text)+'" where name="'+ComboBox1.Text+'" ';
ADOQuery1.SQL.Clear;
ShowMessage(mySql);
ADOQuery1.SQL.add(MySql);
number:=ADOQuery1.ExecSQL;

ModalResult:=mrOK;

这可惨了,我以前用作ASP和PHP 的喜欢简洁的SQL,现在无用武之地,请高人指点迷津?
47522341 2003-10-17
  • 打赏
  • 举报
回复
建议将grade <> 1 改成
grade > 1 and grade < 1 ;
angle097113 2003-10-17
  • 打赏
  • 举报
回复
你的数据库当中grade是什么类型的数据呢
是整型吗? 但是你的参数是整形的
加载更多回复(1)

2,496

社区成员

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

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