在delphi中使用ADO设置Access数据源 老师要我们用delphi做一个管理信息系统,要求使用Access数据库,ADO连接数据源。我现在还不会设置数据源。不知道哪位高手能教教我!不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ADOConnection控件,设置ConnectionString,在数据连接属性里选Microsoft Jet 4.0 OLE DB Provider,再设置mdb文件的路径和密码。测试连接,如果成功就连接好了。 unit SysDBUnit;interfaceuses SysUtils, Classes, ADODB, Forms, DB, Dialogs;Const LinkDBStr = 'DBQ=%s;DefaultDir=%s;Driver=%s;DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;PWD=%s;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;';type TSysDB = class(TDataModule) MainConn: TADOConnection; WQuery: TADOQuery; RQuery: TADOQuery; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); public ExePath: String; function LinkDBServer(aDBPath: String):Boolean; procedure ExecSQL(aQuery:TADOQuery;aSQL: String; aExecMode: boolean); end;var SysDB: TSysDB;implementation{$R *.dfm}{ TSysDB }procedure TSysDB.DataModuleCreate(Sender: TObject);begin ExePath := ExtractFilePath(Application.ExeName); if not LinkDBServer(ExePath) then begin ShowMessage('连接数据库出错!'); Application.Terminate; end;end;procedure TSysDB.DataModuleDestroy(Sender: TObject);begin MainConn.Connected := False;end; //aExecMode 为 True 则需要TADOQuery返回数据. 适用于查询操作 //aExecMode 为 False 则不需要TADOQuery 返回数据. 适用于更新操作procedure TSysDB.ExecSQL(aQuery: TADOQuery; aSQL: String; aExecMode: boolean);begin aQuery.SQL.Clear; aQuery.SQL.Add(aSQL); if aExecMode then aQuery.Open else aQuery.ExecSQL;end;function TSysDB.LinkDBServer(aDBPath: String): Boolean; procedure CloseConn; begin MainConn.Connected := False; MainConn.Close; end;var aDBFile, aDBName, aDBPass: String;begin Result := False; aDBName := '{Microsoft Access Driver (*.mdb)}'; aDBFile := aDBPath + 'HaoCool.mdb'; aDBPass := 'Hao'; Try CloseConn; MainConn.ConnectionString := Format(LinkDBStr, [aDBFile, aDBPath, aDBName, aDBPass]); MainConn.LoginPrompt := False; MainConn.Connected := True; Result := True; Except CloseConn; end;end;end. 在ADO中选择一个ADOConnection控件,双击这个控件,出来一个对话框,选择"use connection string",单击build,出来连接属性,然后选择数据库名称,若数据库没有密码,则选择空白密码,测试连接,连接成功后确定.loginPrompt(若没有密码)属性值为false,然后将connected属性值改为true,连接成功. TryADOPaper.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+'Data Source='+GetCurrentDir()+'\database\storage.MDB;' ;ADOPaper.Open();ADOPaper.Close();ExceptMyMessage('连接数据库出错!');ADOPaper.Free();end; 在ado标签里,找到ADOConnection控件,设置ConnectionString,在数据连接属性里选Microsoft Jet 4.0 OLE DB Provider。然后找到你的数据库,测试连接,如果成功就连接好了 FastReport纵向打印问题 求Anycell Report完整源码 怎样在Select 语句的每个分组中取前几位的记录?在SQL-SEVER提问没得到正确的答复。 如何在数据库中存取图片? 谁知道<<Delphi 6应用开发指南>>电子版下载的地方 如何画出空心效果的文字 怎么在自己的机器上做FTP的软件呢 dbgrid多选记录问题求救??? 各位同道,Delphi 6的D版终于来了!!!!!! 如何找到特定字符分解一个字符串 200分求idhttp使用时内存狂占的解决方法!! 关于 adoquery 的问题
SysUtils, Classes, ADODB, Forms, DB, Dialogs;Const
LinkDBStr = 'DBQ=%s;DefaultDir=%s;Driver=%s;DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;PWD=%s;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;';
type TSysDB = class(TDataModule)
MainConn: TADOConnection;
WQuery: TADOQuery;
RQuery: TADOQuery;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
public
ExePath: String;
function LinkDBServer(aDBPath: String):Boolean;
procedure ExecSQL(aQuery:TADOQuery;aSQL: String; aExecMode: boolean);
end;var SysDB: TSysDB;
implementation{$R *.dfm}{ TSysDB }procedure TSysDB.DataModuleCreate(Sender: TObject);
begin
ExePath := ExtractFilePath(Application.ExeName);
if not LinkDBServer(ExePath) then
begin
ShowMessage('连接数据库出错!');
Application.Terminate;
end;
end;procedure TSysDB.DataModuleDestroy(Sender: TObject);
begin
MainConn.Connected := False;
end;
//aExecMode 为 True 则需要TADOQuery返回数据. 适用于查询操作
//aExecMode 为 False 则不需要TADOQuery 返回数据. 适用于更新操作
procedure TSysDB.ExecSQL(aQuery: TADOQuery; aSQL: String; aExecMode: boolean);
begin
aQuery.SQL.Clear;
aQuery.SQL.Add(aSQL);
if aExecMode then
aQuery.Open
else
aQuery.ExecSQL;
end;function TSysDB.LinkDBServer(aDBPath: String): Boolean;
procedure CloseConn;
begin
MainConn.Connected := False;
MainConn.Close;
end;var aDBFile, aDBName, aDBPass: String;
begin
Result := False;
aDBName := '{Microsoft Access Driver (*.mdb)}';
aDBFile := aDBPath + 'HaoCool.mdb';
aDBPass := 'Hao'; Try
CloseConn;
MainConn.ConnectionString := Format(LinkDBStr, [aDBFile, aDBPath, aDBName, aDBPass]);
MainConn.LoginPrompt := False;
MainConn.Connected := True;
Result := True;
Except
CloseConn;
end;
end;
end.
loginPrompt(若没有密码)属性值为false,然后将connected属性值改为true,连接成功.
ADOPaper.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'
+'Data Source='+GetCurrentDir()+'\database\storage.MDB;' ;
ADOPaper.Open();
ADOPaper.Close();
Except
MyMessage('连接数据库出错!');
ADOPaper.Free();
end;