procedure TfrmInputRoomAndOrder.btnOkClick(Sender: TObject);   //导入本批次本考点的学生信息
begin
 with  adoq_UpdateInfo do  //用符合条件的纪录更新SQL Server 里面dbStudentInfo 库中StudInfo表中的纪录
   begin
   close;
   sql.clear;
   sql.Add('delete  from StudInfo');
   sql.Add('insert into   StudInfo  (STID,STNA,EXID,CLAS,LANG,LEVE,EARN,EXOR)');
   sql.add('select  STID,STNA,EXNU,CLAS,LANG,DEGR,EARN,EXOR');
   sql.add('from  OpenDataSource(''Microsoft.Jet.OLEDB.4.0'', ''Data Source='+ExtractFilePath(Application.ExeName )+'student.mdb;  Persist Security Info=False '')');
   sql.Add('...StudInfo'); //access 里的表
   sql.add(' where EARN=''' + edtExamNo.Text + ''''); //考场号
   sql.add( 'update  StudInfo  set  STAT=''还未登录'' ');
   execsql;
   end;
   close;
   end;
错误提示说:找不到student.mdb 文件,是不是有语法错误,    我这里是想得到student.mdb 的路径,无论它在哪里都能找到

解决方案 »

  1.   

    如果你的student.mdb是和你的Exe文件在一块的话,改为如下试试 
    sql.add('from  OpenDataSource(''Microsoft.Jet.OLEDB.4.0'', ''Data Source=student.mdb;  Persist Security Info=False '')');
      

  2.   

    你这种做法是异想天开!如果你不想和应用程序放在一起,哪你的路径就必须是固定的,如放在系统目录下,program files目录下,以便你的程序在目录下都能访问到,或写注册表,这样用时读取