关于访问ACCESS时的数据插入、更新时出错提示“UPDATE语句语法错误”,并指向“EXECSQL”(100分)

  • 主题发起人 主题发起人 Tsingdan
  • 开始时间 开始时间
T

Tsingdan

Unregistered / Unconfirmed
GUEST, unregistred user!
with dm.AQUser do
begin
close;
sql.Clear;
sql.Add('update login');
sql.Add('set type='''+trim(mdtype.Text)+''',password='''+trim(mdopw.Text)+''' ');
sql.Add('where name='''+trim(mdname.Text)+''' ') ;
prepared;
execsql;
end;

执行时,提示“update语句语法错误”,并指向“EXECSQL” ,我在使用SQL SERVER 时,也是使用相同语句,却没出错此等错误。请问这是为什么?是否“EXECSQL”应用其他字词进行替换?若是,就应用何字词?
请各位高手们帮帮忙。谢谢。。
 
sql.Add('set type='''+trim(mdtype.Text)+''',[password]='''+trim(mdopw.Text)+''' ');
 
access和SQL 2000不一样!!
看一看帮助吧!!
我也有过!
其实这种问题就是一个小错误!
你看一下帮助!
在网上很难说明白!!
等你找到你就明白了
如: access的时间要放#2004-01-01#
还有一些他本身的!
你得具何体找了
 
各位大侠,我是个Delphi初级,现在大四在读,正在做毕业设计,马上就要交了,但是有一个问题还没有解决!我需要用Delphi做一个点菜菜单程序,然后再和飞天软件系统的数据库相连,菜单程序我做的差不多了,但是就是不知道怎么和数据库连~希望大家帮忙啊~~必有重谢!!马上就要交毕设了,急急急!!!!再次致谢!!!希望大侠能留下QQ,我QQ:23249745!!
 
还有一种方法就是在access的查旬中用视图!
然后在看他的SQL 语句!
你会发现有的地方不一样!
 
楼主的编程习惯不好。

不要直接在Query 中直接添加SQL语句。
应该用一个String的变量,把Sql语句先赋给变量中。
Like

Var StrSql :String;
with dm.AQUser do
begin
StrSql:='update login set type='''+trim(mdtype.Text)+''',';
StrSql:=StrSql+'[password]='''+trim(mdopw.Text)+''' ';
close;
sql.Clear;
sql.Add(StrSql);
Try
sql.Execsql;
Except
close;
ShowMessage('修改失败,请检查');
End;
End


这样写的好处 就是你SQL有错误的时候可以用单步执行检查出来。
而且用Try ... Except....End 可以更加安全,即使SQL执行的时候出错,也可以把Query关掉。
初学的时候,单步执行是个很好的东西啊,要多用啊!

 
学到了好多 我的sql写法也很随便 嘿嘿
 
把你的表名和字段名都用[]括起来,好像是占用了默认关键字,如name,type都不合法
 
dm.AQUser 前面不能有,dm.AQUser.open,如果语法没有错误的话,一定可以可以用的,
但保证前面没有用过,open
 
遇到这种问题,如果你的语法确实没有错误的话。
多半就如 feralwolf 所说的,你的字段名采用了默认关键字。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
I
回复
0
查看
594
import
I
I
回复
0
查看
625
import
I
后退
顶部