当我运行时,操作与Query有关的操作时,就会出现错误:
Table does not exist.File or directory not exit.我贴一段程序看看:
procedure TRentForm.ContractCodeChange(Sender: TObject);
begin
  if ContractCode.Text <> '' then
  begin
    with SQLQuery do
    begin
      DatabaseName:=ExtractFilePath(Application.ExeName);
      close;
      SQL.Clear;
      SQL.Add('select 应收日期,应收金额,实收金额,实收日期,发票号');
      SQL.Add('from Rent.dbf');
      SQL.Add('where 合同号= :ContractNo');
      ParamByName('ContractNo').AsInteger:=strtoint(ContractCode.Text);
      prepare;
      Open;
    end;
  end;
end;

解决方案 »

  1.   

    是不是楼主你的程序目录下没有数据表文件Rent.dbf
      

  2.   

    DatabaseName:=ExtractFilePath(Application.ExeName);这个反回的是个当前路径
    不是数据名。。
      

  3.   

    同意
     nnfish(游在Code中的鱼)
      

  4.   

    select * from 表名,注意from的是表名,而不是数据库名。
      

  5.   

    那我改成rent.db(我发现我的表的后缀是.db)后还是有错误:
    type mismatch in expression
      

  6.   

    DatabaseName:=ExtractFilePath(Application.ExeName);
    这只是一个路径.
    另外:
    select * from 后面应该更的是数据库中表的名字
    建议用ado,直接设置ConctionString
      

  7.   

    另外:
    select * from 后面应该更的是数据库中表的名字
    -----------------------------------------------------------------
    我的rent.db就是表的名字啊
      

  8.   

    DatabaseName:=ExtractFilePath(Application.ExeName)+'数据库名';