我连接数据库是使用了dbLink.udl文件来连接的,并且是动态创建的,这样做的好处就是无论代码转移到那个磁盘并且数据库文件改了名字,我们也只需要手动配置一下.udl文件,程序依然可以正常运行,免去了修改代码的麻烦。
例子很简单,直接给代码吧:
procedure TForm1.FormCreate(Sender: TObject);
begin
AQry.ConnectionString := 'FILE NAME=' + ExtractFilePath(paramStr(0)) + 'dbLink.udl';
AQry.Active := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ExConn: TADOConnection;
AFile: string;
sList: TStringList;
aTable: string;
ExQry: TADOQuery;
i: integer;
begin
if OpenDialog1.Execute then
AFile := OpenDialog1.FileName;
ExConn := TADOConnection.Create(Application);
ExConn.Connected := False;
ExConn.LoginPrompt := False;
ExConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +AFile + ';Extended Properties=Excel 8.0;Persist Security Info=False';
ExConn.Connected := True;
sList := TStringList.Create;
ExConn.GetTableNames(sList);
aTable := sList[0];
if Pos('$', aTable)>0 then
aTable := '[' + aTable + ']';
ExQry := TADOQuery.Create(nil);
ExQry.Connection := ExConn;
ExQry.Close;
ExQry.SQL.Clear;
ExQry.SQL.Text := 'select * from' + aTable;
ExQry.Open;
sList.Free;
if ExQry.RecordCount>0 then
begin
ExQry.First;
for i := 1 to ExQry.RecordCount do
begin
AQry.Open;
AQry.Append;
AQry.FieldValues['编号'] := ExQry.FieldValues['编号'];
AQry.FieldValues['角色'] := ExQry.FieldValues['角色'];
AQry.FieldValues['演员'] := ExQry.FieldValues['演员'];
AQry.FieldValues['电视剧'] := ExQry.FieldValues['电视剧'];
AQry.Post;
ExQry.Next;
end;
end;
ExConn.Free;
ExQry.Free;
end;