我用delphi连ACESS数据库,代码如下 
function TForm1.fireerror(channel:integer):bool; 
begin 
if error='否' then result:=true else 
begin 
adoquery2.Parameters.parambyname('channel').value:=channel; 
adoquery2.Parameters.parambyname('shuiping').value:=strtoint(shuiping[channel]); 
adoquery2.Parameters.parambyname('shuiping2').value:=strtoint(shuiping[channel]); 
adoquery2.Parameters.parambyname('fuyang').value:=strtoint(fuyang[channel]); 
adoquery2.Parameters.parambyname('fuyang2').value:=strtoint(fuyang[channel]); 
ADOQuery2.open; 
ADOQuery2.First; 
if not ADOQuery2.Eof then result:=false else result:=true; 
end; SQL语句是select * from error where 云台=:channel and 终止水平角>=:shuiping and 起始水平角<=:shuiping2 
and 起始俯仰角<=:fuyang and 终止俯仰角>=:fuyang2 这个程序在我机子上可以运行,在另一台机子上根本不读取数据库。那台机子可以用delphi 连接其他ACESS数据库。请问为什么?有什么原因会导致这种事情呢,请指点下谢谢

解决方案 »

  1.   

    估计是连接字符串的问题,是不是access的路径发生变了
      

  2.   

    数据库文件COPY过去没有?路径有没有问题.把代码在另一台机上单步调试一下.
      

  3.   

    定义一个AppPath.AppPath := ExtractFilePath(Application.ExeName); //获取程序启动路径数据库的连接字符串access文件路径要加上AppPath。
      

  4.   

    我写了一个你看一下
    我用的是ACCESS2003+D7
    unit Conn;interfaceuses
      SysUtils, Windows, Messages, Variants,  Forms,  Dialogs, DB, ADODB, IniFiles;procedure SetADOConnection(ADOConnection1: TADOConnection);
        
    implementation
    var 
     myinifile:Tinifile;
     
    procedure SetADOConnection(ADOConnection1: TADOConnection);
    var
     password,servername,user,databasename:string;
    begin{myinifile:=Tinifile.create (ExtractFilePath (
        Application.ExeName) + 'inc/conn.ini');
        password:= myinifile.readString('conn','password',password);
        servername:= myinifile.readString('conn','servername',servername);
        user:= myinifile.readString('conn','user',user);
        databasename:= myinifile.readString('conn','databasename',databasename);
        myinifile.Free;} 
    ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=data\pddy.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
    try
        adoconnection1.LoginPrompt:=False;
        ADOConnection1.Connected := True;
    except
        Application.MessageBox('连接失败,请检查服务器配置是否正确!','提示',MB_OK+MB_ICONINFORMATION);
        Application.Terminate;
    end;
    end;