数据库连接和读取数据

1. 需要有TADOConnection 和TADOQuery这两个控件;
2. ADOQuery1 的Connection属性设置为:ADOConnection1;
3. 读配置文件,得到数据库

None.gif procedure TFrmMain.ReadInifile;
None.gifvar
None.gif  IniFile: TIniFile;
None.gifbegin
None.gif  IniFile :
=  TIniFile.Create(ExtractFilepath(Application.exename)  +   ' aninifile.ini');
None.gif
  try
None.gif    FServerName :
=  IniFile.ReadString( ' db', 'server', '');
None.gif
    FParamDBName : =  IniFile.ReadString( ' db', 'paramdb', '数据库名称');
None.gif
     if  (FServerName  =   ' ') or (FParamDBName = '') then
None.gif
    begin
None.gif      MessageBox(Application.Handle, PChar(
' 读取配置文件aninifile.ini 中服务器出错,请修复!
None.gif

None.gif
' ), PChar('我的应用程序'), MB_ICONSTOP);
None.gif
     end ;
None.gif  finally
None.gif    IniFile.Free;
None.gif  
end ;
None.gif
end ;
None.gif
None.gif



4.打开数据库

None.gif function  TFrmMain.OpenParamDB:  Boolean ;
None.gifbegin
None.gif  
with  ADOConnection1  do
None.gif  begin
None.gif    try
None.gif      
if   not  Connected  then
None.gif      begin
None.gif        ConnectionString :
=   ' Provider=SQLOLEDB.1;Persist Security Info=False;User 
None.gif

None.gifID
= sa;Initial Catalog = '  + FParamDBName + ';Data Source=' + FServerName;
None.gif
        Connected        : =   true ;
None.gif      
end ;
None.gif      result :
=   true ;
None.gif    except
None.gif      MessageBox(Application.Handle, PChar(
' 无法连接计算机“' + FServerName + '”上的“' + 
None.gif

None.gifFParamDBName 
+   ' ”,请检查数据库是否已安装并启动!'), PChar('我的应用程序'), 
None.gif

None.gifMB_ICONWARNING);
None.gif      result :
=   false ;
None.gif    
end ;
None.gif  
end ;
None.gif
end ;
None.gif
None.gif



5.写SQL语句,读出数据

None.gif function  TRdb.RefreshShowInfo( const  ADeviceId, AInDeviceId:  integer ): TDcapTt;
None.gifvar
None.gif  strSQL: 
string ;
None.gif  Device: TDcapDevice;
None.gif  Tt: TDcapTt;
None.gifbegin
None.gif  strSQL :
=   '  SELECT 表1.名称,  表2. * ,表3.备注 '+
None.gif
             '  FROM 表1 INNER JOIN 表2 ON ( 表1.ID = 表2.ID) '+
None.gif
             '  INNER JOIN 表3 ON  (表1. ID = 表3.ID) '+
None.gif
             '  WHERE (1.ID = '+ IntToStr(AId) + ')';
None.gif
  try
None.gif    
with  FrmMain.ADOQuery1  do
None.gif    begin
None.gif      Close;
None.gif      SQL.Clear;
None.gif      SQL.Add(strSQL);
None.gif      Open;
None.gif      First;
None.gif      
while   not  Eof  do
None.gif      begin
None.gif        Device :
=  TDcapDevice.Create(FrmMain.ADOQuery1);
None.gif        
Next ;
None.gif      
end ;
None.gif      Close;
None.gif    
end ;
None.gif  except
None.gif  
end ;
None.gif
end ;
None.gif
None.gifconstructor TDcapDevice.Create(Query: TADOQuery);
None.gifvar
None.gif  ARemark: 
string ;
None.gifbegin
None.gif  try
None.gif    FId :
=  Query.FieldByName( ' ID').AsInteger;
None.gif
    FName : =   Trim (Query.FieldByName( ' 名称').AsString);
None.gif
    FName1 : =   Trim (Query.FieldByName( ' 名1').AsString);
None.gif
    ARemark : =   Trim (Query.FieldByName( ' 备注').AsString);
None.gif
     if  ARemark  =   ' tttt' then
None.gif
      FType : =  dtGRS
None.gif    
else
None.gif      FType :
=  dtNormal;
None.gif  except
None.gif  
end ;
None.gif
end ;
None.gif
None.gif



6.关闭打开的数据库

None.gif procedure TFrmMain.CloseParamDB;
None.gifbegin
None.gif  ADOConnection1.Close;
None.gif
end ;
None.gif



7.显示读出来的数据

None.gif procedure TFrmMain.RefreshTtList;
None.gifvar
None.gif  i: 
integer ;
None.gif  NewItem: TListItem;
None.gif  mytt: TDcapTt;
None.gif  mydevice: TDcapDevice;
None.gifbegin
None.gif  
if   not  NotListStrap  then
None.gif    begin
None.gif      
if  ListView1  =  nil  then
None.gif        CreateListView;
None.gif
None.gif    
with  ListView1.Items  do
None.gif    begin
None.gif      BeginUpdate;
None.gif      Clear;
None.gif      
for  i: = 0   to  FTts.Count - 1   do
None.gif      begin
None.gif        NewItem :
=  Add;
None.gif        mytt :
=  TDcapTt(FTts[i]);
None.gif        mydevice :
=  mytt.Device;
None.gif        
case  mytt.Status of
None.gif        TT_STATUS_CLOSE:
None.gif        begin
None.gif          NewItem.Caption :
=  FState1Text;
None.gif          NewItem.ImageIndex:
= 0 ;
None.gif        
end ;
None.gif        TT_STATUS_OPEN:
None.gif        begin
None.gif          NewItem.Caption :
=  FState2Text;
None.gif          NewItem.ImageIndex:
= 1 ;
None.gif        
end ;
None.gif        TT_STATUS_UNKNOWN:
None.gif        begin
None.gif          NewItem.Caption :
=   ' 不确定';
None.gif
          NewItem.ImageIndex: = 2 ;
None.gif        
end ;
None.gif        
end ;
None.gif        NewItem.SubItems.Add(mydevice.StationName);
None.gif        NewItem.SubItems.Add(IntToStr(mydevice.Id));
None.gif        NewItem.SubItems.Add(IntToStr(mytt.InDeviceId));
None.gif        NewItem.SubItems.Add(mytt.Name);
None.gif      
end ;
None.gif      EndUpdate;
None.gif    
end ;
None.gif  
end ;
None.gif
end ;
None.gif

转载于:https://www.cnblogs.com/sideandside/archive/2007/03/26/687842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值