CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

线程里边可以用ADO类操作数据库吗?

楼主BADLUCK88()2003-12-03 01:01:06 在 Delphi / 数据库相关 提问

想在线程里执行数据库,不知道能否用ado控件,试了一下,老出错。  
  请教高手指点。  
  问题点数:0、回复次数:4Top

1 楼hch_45(痞子宏)回复于 2003-12-03 08:25:51 得分 0

当然可以,不过定义,构造、释放、属性等你要动态设置。Top

2 楼BADLUCK88()回复于 2003-12-03 21:02:03 得分 0

我就是动态设置的,可是还是不行啊,  
  不知道能否给个例子,谢谢Top

3 楼MartinWang(小磋磋)回复于 2003-12-03 23:11:33 得分 0

要初始化的!!:)Top

4 楼qyyok()回复于 2003-12-04 09:18:15 得分 0

给你一段查询的源码  
  把dbgrideh的名称   和sql语句传过去  
   
  unit   OpenSql;  
   
  interface  
   
  uses  
      Classes,DB,   ADODB,   DBCtrlsEh,   DBGridEh,IsSearch,Dialogs;  
   
  type  
      TOpenSql   =   class(TThread)  
      private  
          {   Private   declarations   }  
          Procedure   SetDataSouce;  
      protected  
          SortStr:String;  
          TmpQry:TADOQuery;  
          TmpGrd:TDBGRidEh;  
          procedure   Execute;   override;  
      public  
          constructor   Create(GrdT:TDBGRidEh;Qryt:TADOQuery;SorTT:string);   virtual;  
      end;  
   
  implementation  
   
  {   Important:   Methods   and   properties   of   objects   in   VCL   or   CLX   can   only   be   used  
      in   a   method   called   using   Synchronize,   for   example,  
   
              Synchronize(UpdateCaption);  
   
      and   UpdateCaption   could   look   like,  
   
          procedure   TOpenSql.UpdateCaption;  
          begin  
              Form1.Caption   :=   'Updated   in   a   thread';  
          end;   }  
   
  {   TOpenSql   }  
   
  constructor   TOpenSql.Create(GrdT:TDBGRidEh;Qryt:TADOQuery;SorTT:string);  
  begin  
      inherited   Create(True);  
      SortStr:=SorTT;  
      GrdT.SumList.Active:=False;  
      TmpGrd:=GrdT;  
      TmpGrd.DataSource.DataSet:=nil;  
      TmpQry:=Qryt;  
      FreeOnTerminate   :=   True;  
      Resume;  
  end;  
   
  procedure   TOpenSql.Execute;  
  begin  
      TmpQry.Open;  
      TmpQry.Sort:=SortStr;  
      Synchronize(SetDataSouce);  
      {   Place   thread   code   here   }  
  end;  
   
   
  procedure   TOpenSql.SetDataSouce;  
  begin  
      FrmIsSearch.ani1.Active:=False;  
  //     FrmIsSearch.pnl1.Caption:=SortStr;  
      FrmIsSearch.Close;  
      TmpGrd.DataSource.DataSet:=TmpQry;  
      TmpGrd.SumList.Active:=True;  
  end;  
   
  end.Top

相关问题

  • 高分!多线程ADO访问数据库问题!
  • 用ADO在线程中打不开数据库,请帮忙
  • 用ADO多线程访问数据库的问题
  • 怎样在多线程中通过ADO访问 ACCESS 数据库
  • 对线程中的ado数据库保存不行哦??
  • 如何在多个线程里通过ADO操作数据库?
  • 使用ADO与access数据库的多线程问题
  • 数据库ado
  • 关于在多线程中用ADO连接数据库时,数据库连接释的问题。超难,超难。
  • 奇怪!请教高手,多线程与ADO访问数据库的问题。

关键词

  • topensql
  • grdt
  • sortt
  • updatecaption
  • tdbgrideh
  • tadoquery
  • procedure
  • create

得分解答快速导航

  • 帖主:BADLUCK88

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo