热点推荐:
您现在的位置: 电脑学习网 >> 软件专区 >> 正文

delphi实现ado的高级功能

2013-09-12 15:53:21  来源: 软件专区 

  ADO是Microsoft存取通用数据源的标准引擎。ADO通过封装OLE DB而能够存取不同类型的数据,让应用程序能很方便地通过统一的接口处理各种数据库。ADO由一组COM对象组成,每一个不同的原生ADO对象负责不同的工作。下面,向大家介绍如何使用原生ADO对象的动态属性来实现ADO的高级功能。www.sq120.com推荐文章

  ADO原生对象关系图:
  Connection
  Errors→Error
  Command→Parameters→Parameter
  RecordSet→Fields→Field
一、存取原生ADO对象
  Delphi中的ADO组件页中的组件为我们通过ADO技术访问数据库提供了方便。这些组件封装了原生的ADO对象。虽然我们利用ADO组件页中的组件也能编写出有效率的数据库程序,但是ADO中的一些属性和方法仍然是ADOExpress组件没有封装进去的,而此时,需要使用这些没有封装的属性和方法,必须还得通过存取原生的ADO对象来使用这些属性和方法。
  在ADO组件中,每个组件都有一个属性让程序员通过它来存取它所封装的原生ADO对象。下面我们用表1来说明ADO组件页中ADO组件封装原生ADO对象的属性:
  在程序中访问ADO组件封装的原生ADO对象,例如:
  Var
  MyRS :_RecordSet;
  MyRS :=ADODataSet1.RecordSet;
  以上这句就是访问组件封装的原生ADO对象RecordSet。WwW.ITCOmPutER.COM.CN


 
二、存取原生ADO对象的动态属性
  当我们用ADO组件编写针对特定数据库的应用程序时,ADO驱动程序会将特定数据库所能提供的功能存储在动态属性之中。在ADO模型中,每一个原生AD
  O对象都有一组动态属性。
  注意:在Delphi中,只能通过原生的ADO对象来存取动态属性。
  原生的ADO对象的动态属性集合存储在名为Properties的数组结构中,Properties数组中的每一个数组元素Property就对应一个特定的动态属性。因此,访问原生ADO对象的动态属性的基本步骤是:
  1. 通过ADO组件的属性访问其封装的原生的ADO对象;
  2. 利用原生的ADO对象访问其Properties动态属性集合;
  3. 在Properties动态属性集合中访问Property动态属性;
  4. 存取Property动态属性的值,实现ADO组件未封装的功能。
  Delphi为我们访问动态属性集合Properties提供了几个方便的接口函数供我们调用:
  Function Get_Item(Index : OleV
  ariant) :Property; SafeCall;//根据动态属性的索引值或名称获取动态属性
  Property Item[Index :OleVariant
  ] :Property Read Get_Item;//根据动态属性在集合中的索引值来获取动态属性
  Delphi也提供了以下的属性来方便地访问动态属性Propery的名称和值:
  Name 动态属性的名称
  Value 动态属性的值
  为了说明这些原理,我们用一个简单的例子来说明。这个例子中,程序运行后点击按钮,在Memo中就会显示原生的ADO对象RecordSet的所有动态属性。
  1. 建立一个新的工程,保存为Project1.dpr;
  2. 在主窗体上放置如下组件:
  TAdoConnection、TAdDataSet、TMemo、TButton
  3. 将TAdoConnection的Conne
  ctionString属性连接到SQL SERVE
  R 数据库的Pubs数据库;
  4. 设置TAdoDataSet的Connecti
  on属性为上一步中的TAdoConnecti
  on组件;
  5. 编写按钮的Button1Click事件处理函数代码如下:
  procedure TForm1.Button1Click(S
  ender: TObject);
  Var
  i :Integer;
  MyPty :Property_;
  MyPties :Properties;
  MyRS :_RecordSet;
  begin
  AdoDataSet1.Open;
  MyRS :=AdoDataSet1.RecordSet; //获取原生的ADO对象赋值给MyRS
  MyPties :=MyRS.Properties; //获取原生ADO对象的动态属性集合Prop
  erties赋值给MyPties
  For i :=0 to MyPties.Count-1 do //循环取得动态属性集合Properties中的每一个动态属性
  begin
  MyPty :=MyPties.Item[i]; //动态属性集合MyPites的Item属性根据索引值取得每一个动态属性赋值给MyPty
  Memo1.Lines.Add(MyPty.Name); //动态属性MyPty的Name属性表示该动态属性的名字,将动态属性的名字加入到Memo1列表中。
  end;
  end;

 
刻盘时出现“Buffer Under Run”错误 问:最近购买了一台CD-RW刻录机,在刻录过程中经常出现“Buffer Under Run”错误提示,无法完成刻录,为此刻坏了好几张盘。请问这是什么原因造成的?

答:刻录过程中出现这种故障的原因通常有:1.在刻盘的同时系统运行了其他程序,导致CPU资源不足而造成刻录不成功。2.其他应用程序中断了数据传输,比如屏幕保护程序、杀毒软件等程序的启动,也会造成刻录失败。不过,现在的正品刻录机基本上都使用了刻录保护技术,这些技术可以在发生“Buffer Under Run”时暂停刻录工作并记录刻录信息,一旦缓冲区数据得到补充,又会重新开始刻录。所以,建议大家购买刻录机时尽量购买正品,切勿贪图便宜买杂牌货。

 
Win32.Troj.DownloaderT.pl.43008病毒

  我是一家网吧的网管,为了维护网吧的电脑以及保护操作系统的安全,我给每台电脑都安装了还原系统。最近发现很多电脑的操作系统都得了“重感冒”,老是被木马、病毒侵袭,即使安装了还原系统也无法阻挡。
  后来我用安全工具检查,发现电脑中了一个名为Win32.Troj.DownloaderT.pl.43008的病毒。请教医生,我的还原系统是被它破解的吗?我要怎么才能彻底消灭该病毒呢?
病毒自述:我的名字就叫“关门放狗”
  看过周星驰《七品芝麻官》的朋友们都知道一句经典台词“关门放狗”,如今这句台词就成为了我的大名!我不但会运用天赋将电脑的还原系统彻底破解掉,让自己深深扎根于电脑操作系统中,还会持续散播一些木马病毒,让你们的电脑彻底曝光在黑客的眼皮之下。下面就来看看我是如何一步步实现目的的。
  当我进入用户的电脑系统后,首先会在系统盘中释放出五个病毒文件,其中的四个文件分别为1.exe、2.exe、3.exe、4.exe,这四个文件是在系统盘根目录下(图1),还有一个是在系统盘WINDOWS\Temp\目录下随机命名的TMP文件,这个文件其实就是前辈“机器狗”病毒的驱动程序。

  接着,我就想办法让自己扎根于电脑操作系统中,迅速修改系统注册表,把自己的相关信息加入其中,实现随系统启动而自动运行之目的。我会创建一个名为“sys_flt”的服务,然后该服务程序指向在Temp目录中生成的TMP文件。当这个TMP文件被顺利加载后,就能将我自身复制到系统盘的“DocumentsandSettings\AllUsers\「开始」菜单\程序\启动\”目录下,并设置属性为只读。
  当我在电脑系统里站稳脚跟后,就通过一系列快速地攻击,解除还原系统对电脑的保护,让我自己深深扎根于用户的电脑中!我会悄悄地连接http://www.2**01*8.cn/api/other这个由木马种植者指定的地址,下载许多木马程序到用户电脑上运行,给用户的系统安全带来无法估量的威胁。
本期医生:使用“打狗棒法”清除恶狗
  如果是网吧的话,最简便快捷的清除方法是利用GHOST在短时间内恢复系统,毕竟大批量的电脑一台台来进行手工查杀不太现实。而使用了还原系统的普通用户,用我的“打狗棒法”即可铲除这条恶狗。
  Step1:由于“关门放狗”病毒从网上下载了大量的木马,这些木马的危害结果各不相同,有些会破坏电脑的安全模式,并隐藏受保护文件,还有些会劫持杀毒软件,所以我们首先打开“我的电脑”,选择“工具”菜单→“文件夹选项”,选择“查看”,取消“隐藏受保护的操作系统文件”前的对钩,并在“隐藏文件和文件夹”项中选择“显示所有文件和文件夹”,然后单击“确定”。
  小提示:如果安全模式也无法进入,则打开安全工具SREng,点击界面中的“修复安全模式”即可(图2)。

  Step2:删除系统盘根目录下的1.exe、2.exe、3.exe、4.exe四个病毒文件,以及系统统盘WINDOWS\Temp\目录下随机命名的TMP文件,某些文件在手工删除时会提示“此文件正在使用无法删除,使用Unlocker就可以避免这种问题。
  Step3:然后升级当前计算机中所用的杀毒软件到最新病毒库进行全面查杀,再用《360安全卫士》配合AVG Anti-Virus清除系统中剩余的病毒即可。

 
From:http://www.itcomputer.com.cn/Article/Software/201309/335.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 电脑知识网 Computer Knowledge   All rights reserved.