以下这段代码大家看了觉得可能没有错误,编译也通过了,但在运行时就是显示‘ODBC SQL语法错误!,我的数据库是ACCESS2002,是不是BDE不支持ACCESS2002的原因!
str:='insert into table1(编号,name,datetime,tel) values(:d,:a,:b,:c)';
dataform.Database1.StartTransaction;
Try
with dataform.Query1 do
begin
close;
sql.Clear;
sql.Add(str);
params[0].Value:=Trim(Edit1.Text);
params[1].Value:=Trim(Edit2.Text);
params[2].Value:=Trim(Edit3.Text);
params[3].Value:=Trim(Edit4.Text);
execsql;
end;
dataform.database1.Commit;

解决方案 »

  1.   

    语句看上去是没错!可能造成出错的原因有:
    (1)日期输入格式不正确,因为你用的是Edit组件,需手工输入,难以保证格式的完整性;
    (2)数据库表的字段名称有问题,比如name,datetime好像是系统关键字,不适合作为字段名称,如果确是如此的话,请改用其它名称;
    (3)params[i].Value改成params[i].AsString试试看!(不知道BDE中有没有这个属性呢)
      

  2.   

    试试:
    params[2].AsDate:=FormattoDateTime(Edit3.Text);
      

  3.   

    str:='insert into table1([编号],[name],[datetime],[tel]) values(:d,:a,:b,:c)';