我的程序是Delphi+ADO+Access 2000,我用一个AdoQuery对ACCESS中建的一个UserType进行数据更新:
代码如下:
close;
sql.Clear ;
sql.Clear ;
sql.Text:='insert usertype (id,name,memo)'
+'values ("'+uppercase(E_ID.Text)
+'","'+E_Type.Text
+'","'+E_memo.Text +'")';
try
execsql;
except
close;
self.Close ;
end;另一个是Update的也是对同一个表的内容进行更新. 但执行时,总提示Insert Into 语法错误.Update也一样,
但如使用Delete就没有问题.表中的字段都是文本型的.
代码如下:
close;
sql.Clear ;
sql.Clear ;
sql.Text:='insert usertype (id,name,memo)'
+'values ("'+uppercase(E_ID.Text)
+'","'+E_Type.Text
+'","'+E_memo.Text +'")';
try
execsql;
except
close;
self.Close ;
end;另一个是Update的也是对同一个表的内容进行更新. 但执行时,总提示Insert Into 语法错误.Update也一样,
但如使用Delete就没有问题.表中的字段都是文本型的.
close;
sql.Clear ;
sql.Clear ;
sql.Text:='insert usertype (id,name,memo)'
+'values ('''+uppercase(E_ID.Text)
+''','''+E_Type.Text
+''','''+E_memo.Text +''')';
try
execsql;
except
close;
self.Close ;
end;
//如果ID是整型
close;
sql.Clear ;
sql.Clear ;
sql.Text:='insert usertype (id,name,memo)'
+'values ('+uppercase(E_ID.Text)
+','''+E_Type.Text
+''','''+E_memo.Text +''')';
try
execsql;
except
close;
self.Close ;
end;
看看,详细介绍在Access的语法是如何的,(不好意思,我忘记了
那个帮助文件的名称)
你将上面的写成Insert Into看行不行,好像Access中只能使用Insert Into
而不能使用Insert示例,看对你有没有帮助
commandText := 'Update S_System Set 显示= 0 where CtrlName=''Sa006''';CommandText :=
'Insert into Sb06_DCheck(序号,部门代码,年月日,年月日1,请假时间,单号) '+
' values('+ADS_Master.FieldByName('序号').Asstring+
',"'+ADS_Master.FieldByName('部门代码').Asstring+'"'+
',#'+FormatDateTime('yyyy-mm-dd',ADS_Master.FieldByName('开始时间').ASDateTime)+'#'+
',#'+FormatDateTime('yyyy-mm-dd',ADS_Master.FieldByName('结束时间').ASDateTime)+'#'+
','+ADS_Master.FieldByName('请假时数').Asstring+'*60'+
',"'+ADS_Master.FieldByName('请假单号').Asstring+'")';
^^^这里是不是缺少空格
+'values ("'+uppercase(E_ID.Text)
+'","'+E_Type.Text
+'","'+E_memo.Text +'")';还有,使用一个Showmessage就可以看得出来生成后的SQL语句是否正确
这是基本的调试手段
ADOTable.Append(E_ID.Text,E_Type.Text,E_memo.Text);
close;
sql.clear;
sql.add(' insert usertype (id,name,memo) values(:id,:name,:memo) ');
Parameters.ParamByName('id').value:=E_ID.Text;
Parameters.ParamByName('name').value:=E_Type.Text;
Parameters.ParamByName('memo').value:=E_memo.Text;
try
ExecSQL;
except
Application.MessageBox('插入数据异常','提示',64);
end;
sql.Clear ;
sql.Text:='insert usertype ([id],[name],memo)'
+'values ("'+uppercase(E_ID.Text)
+'","'+E_Type.Text
+'","'+E_memo.Text +'")';
try
execsql;
except
close;
self.Close ;
end;
改成这样 试试看看我是这样就可以搞定了