提问:连接ACCESS的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 wentian719
  • 开始时间 开始时间
W

wentian719

Unregistered / Unconfirmed
GUEST, unregistred user!
情况1:
ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+ ExtractFilePath(Application.ExeName)+'Data/HNCRMDB.mdb' + ';'
+ 'Persist Security Info=false;Jet OLEDB:Database Password=chenxiao123';
时,一切正常,但在别的机器上连接不到数据库。

情况二:一不行,所以采用ODBC注册的方式:注册内容为:
WriteString('Description', odbcname + '数据源'); //数据源描述
WriteString('Driver', MySysPath + '/odbcjt32.dll'); //驱动程序DLL文件
WriteInteger('DriverId', 25); //驱动程序标识
WriteString('FIL', 'Ms Access;'); //Filter依据
WriteInteger('SafeTransaction', 0); //支持的事务操作数目
WriteString('UID', 'Admin'); //用户名称
WriteString('PWD', '123');
bData[0] := 0;
WriteBinaryData('Exclusive', bData, 1); //非独占方式
WriteBinaryData('ReadOnly', bData, 1); //非只读方式

WriteString('ImplicitCommitSync', 'Yes');
WriteInteger('MaxBufferSize', 512); //缓冲区大小
WriteInteger('PageTimeout', 10); //页超时
WriteInteger('Threads', 3); //支持的线程数目
WriteString('UserCommitSync', 'Yes');
但这时以前运行良好的程序会出现问题,找不到参数。
比方说:
with DataModule1.ADOQueryClient do
begin
Close;
Sql.Clear;
SQL.Text := 'select * from client where KHDW=p1';
Parameters.ParamByName('p1').Value := CurClientDW;
Open;
end;
会报错误:找不到参数p1,用log记录E.message为:
2007-04-19 15:50:43:2007-04-19 15:50:43系统出错:[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
 
对于问题一:请确保你在拷贝到另外一台电脑时 HNCRMDB.mdb所处的相对位置是否正确.
即在主程序目录下的Data目录下.
 
后退
顶部