在Delphi中用ADD控件打开Access文件

Author: 吴国宇 Date: 2001年 43期

?牐犜贒elphi数据库编程中,有时我们想避开BDE数据引擎,这样就可以减少非常大的额外开销。这时,我们就要用ADO控件了,(ADO控件是微软用来存取各种数据的高级接口技术,也叫OLE DB)。下面就是一个用ADO控件读取Access数据库的程序。
  ?牐犑紫仍诖疤逯屑尤胍韵驴丶?
  ?牐燽utton1,label1,label2,listbox1,edit1控件(它们在Standard选项卡上);
  ?牐爋pendialog1控件(在Dialogs选项卡上)
  ?牐燿atasource1控件(在Data Access选项卡上)
  ?牐燿bgrid1控件(在Data Controls选项卡上)
  ?牐燼doconnection1,adotable1控件(在ADO选项卡上)
  ?牐牳翘砑邮实钡氖粜裕顾侨鏭43020504a^1所示。它们的要添加的属性如下:
  ?牐燽utton1:caption  属性:'打开';??
  ?牐爈abel1:caption  属性:'Access文件';??
  ?牐爈abel2:caption 属性:'请选择表';
  ?牐爀dit1:text 属性:' ';(即空白)??
  ?牐爋pendialog1:filter属性:*.mdb|*.mdb;??
  ?牐燿bgrid1:datasource 属性:datasource1;??
  ?牐燿atasource1:dataset 属性:adotable1;??
  ?牐燼dotable1:connection 属性:adoconnection1;??
  ?牐燼doconnection1:loginprompt 属性:false;??
  ?牐犔砑邮粜院螅颐蔷透录砑映绦虼耄灰赽utton1的onclick事件和listbox1的ondblclick事件中添加程序即可,添加的程序如下:
  ?牐燽utton1的onclick事件:
  ?牐爌rocedure TForm1.Button1Click(Sender:TObject)?牔?
  ?牐爒ar
  ?牐爉yaccess:string;??
  ?牐燾onst
  ?牐爉yStr1='Provider=%s;Data Provider=%s;Data Source=%s';??
  ?牐爗给出接口参数}??
  ?牐爉yprovider='msdatashape.1';??
  ?牐爉ydataprovider='microsoft.jet.oledb.4.0';??
  ?牐燽egin
  ?牐爋pendialog1.FileName:='*.mdb';??
  ?牐爄f opendialog1.Execute then
  ?牐燽egin
  ?牐爉yaccess:=opendialog1.FileName;??
  ?牐爀dit1.Text:=myaccess;??
  ?牐燼doconnection1.Connected:=false;??
  ?牐燼doconnection1.ConnectionString:=format(mystr1,
  ?牐燵myprovider,mydataprovider,myaccess]);?牐牔?
  ?牐燼doconnection1.Connected:=true;??
  ?牐燼doconnection1.GetTableNames(listbox1.Items);?牔?
  ?牐爀nd;??
  ?牐爀nd;??
  ?牐爈istbox1的ondblclick事件:
  ?牐爌rocedure TForm1.ListBox1DblClick(Sender:TObject)?牔?
  ?牐燽egin
  ?牐燼dotable1.Close;??
  ?牐燼dotable1.TableName:=listbox1.Items.Strings[listbox1.itemindex];?牔?
  ?牐燼dotable1.Open;??
  ?牐爀nd;??
  ?牐犔砑映绦蚝笤诵校宰糯蚩桓鯝ccess文件。比如我打开一个在E盘的“E:\My Documents\myaccess1.mdb”文件(^43020504b^2),该文件中有五个表,双击任何一个就会自动打开。致于对数据库的添加、删除等操作,adotable控件和table控件差不多,这里就不说了,有兴趣的读者可以自己试试(以上程序已在Delphi 5.0中调试通过和在没有安装Delphi及BDE的电脑上运行成功)。