1.-------------------------------------------------
procedure TFmWalkorention.FormCreate(Sender: TObject);begin
     UDLpath:=Extractfilepath(Application.EXEName);
     ADOQuery1.ConnectionString:='';
     ADOQuery1.ConnectionString:='FILE NAME='+UDLpath+'\udl.udl';
     ADOQuery2.ConnectionString:='';
     ADOQuery2.ConnectionString:='FILE NAME='+UDLpath+'\udl.udl';      with ADOQuery1  do
      begin
          sql.clear;
          sql.add('select * from orention');
          open;
      end;
     end;
2.------------------------------------------------
主要实现添加: 
  。
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('select * from orention where Point="'+EditPoint.Text+'"');
  ADOQuery2.Open;
  if ADOQuery2.RecordCount>0 then
  begin
      Application.MessageBox('测点代码重复!请删除记录后,再添加新测点代码','确定',MB_OK);
      Exit;
  end;  ADOQuery1.Insert;
  ADOQuery1.FieldByName('Point').AsString := EditPoint.Text;
  ADOQuery1.FieldByName('PointName').AsString := EditPointName.Text;
  ADOQuery1.FieldByName('Orention1').AsString := CBOrentionName.Text;
  ADOQuery1.FieldByName('Orention2').AsString := CBOrentionName1.Text;
  ADOQuery1.Post;
--------------------------
这样写添加功能基本能实现,但是在保存时,录入与数据库同样的信息点保存按钮,ADOQuery2的查询判断部分,在放有断点的时候可运行到弹出错误提示窗口,但是去掉断点后,好像没有进行ADOQuery2的查询判断部分,而是直接进行添加了,还有对录入同样的信息,多点几次保存按钮,之前的信息都入库了,点到某一次时它又可以弹出错误提示窗口,请问,怎么回事?是不是查询时间有延时的可能?还有我这种联接数据库的方式好不好。如不好,请给出例子。谢谢!!

解决方案 »

  1.   

    procedure Tdm.DataModuleCreate(Sender: TObject);
    var
      str:string;
    begin
      str:=ExtractFilePath(ParamStr(0))+'YourData.mdb';
      ADOConnection1.ConnectionString:=
          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+str
          +';Jet OLEDB:Database Password=YourPassword';
      ADOConnection1.Connected:=true;
    end;不建议直接使用ADOQuery连接
      

  2.   

    你漏了一句话,改为如下即可:
      ADOQuery2.Close;     //先关闭
      ADOQuery2.SQL.Clear;
      ADOQuery2.SQL.Add('select * from orention where Point="'+EditPoint.Text+'"');
      ADOQuery2.Open;