我用以下语句向数据库里新记录为何会出现如下错误:
File or directory does not exist
File D:\kyMIS2003\xy_infor.db
File D:\kyMIS2003\xy_infor.dbf
File D:\kyMIS2003\xy_infor.txt
File D:\kyMIS2003\xy_infor.
代码:procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
 with query1 do
begin
 SQL.clear;
 SQL.add('insert into xy_infor(XH,XM,XB,KC,XF,ZL,SJXF,GZDW,DH,BMRQ,XFZHM,BZ,JSR)values(:Xh,:Xm,:Xb,:Kc,:Xf,:Zl,:Sjxf,:Gzdw,:Dh,:Bmrq,:Sfzhm,:Bz,:Jsr)');
 query1.ParamByName('Xh').value:=Trim(BhEdit.Text);
 query1.ParamByName('Xm').value:=Trim(NameEdit.Text);
 query1.ParamByName('Xb').value:=Trim(SexEdit.text);
 query1.ParamByName('Kc').value:=Trim(kcMC.text);
 query1.ParamByName('Xf').value:=Trim(XfEdit.text);
 query1.ParamByName('Zl').value:=Trim(ZlEdit.text);
 query1.ParamByName('Sjxf').value:=Trim(SsfEdit.text);
 query1.ParamByName('Gzdw').value:=Trim(AddEdit.text);
 query1.ParamByName('Dh').value:=Trim(TelEdit.text);
 query1.ParamByName('Bmrq').value:=Trim(DateEdit.text);
 query1.ParamByName('Sfzhm').value:=Trim(IdEdit.text);
 query1.ParamByName('Bz').value:=Trim(BzEdit.text);
 query1.ParamByName('Jsr').value:=Trim(JsrEdit.text);
 ExecSQL;
end;
end;
说明:
在Delphi中的所有数据库组件连接的数据库为;D:\kymis\kymis.mdb(access文件)
而程序文件都放在D:\kyMIS2003目录下
请问出现如此问题如何解决?

解决方案 »

  1.   

    不要用bde,用ado试试。可能bde不支持,用adoquery.
      

  2.   

    你的query的databasename设的对吗?
      

  3.   

    sql.clear;前加一个close;有用吗?
      

  4.   

    设置QUERY1的DATABASENAME为你的数据库所在的目录
      

  5.   

    应该是你的数据库连接的问题,和tquery中的语句没有关
    1 看tquery的database是否设置正确
    2 看database是否设置正确,数据库是否打开
      

  6.   

    谢谢以上的各位仁兄,问题解决了,但一个新的问题又来了,为何总是报错:
    [Microsoft]ODBC Microsoft Access Driver]INSERT INTO 语句含下列未知的字段名:'XFZHM'确定键入的名称是否正确,然后重试!我发现数据库中确实有‘XFZHM'这个字段,但为何会出错?