Delphi6使用TAdoDataSet来实现数据的备份与恢复计算机二级考试
文章作者 100test 发表时间 2009:06:17 19:13:32
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
计算机等级考试四级应用题解析汇总
2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库。
最近做一个Delphi的项目原先的项目采用BDE连接数据库,现在改用ADO进行数据库连接。数据库为Access。
找了很多资料发现都是用LoadFromFile,SaveToFile两个方法来实现。下面详细讲解
1、备份
备份操作是最简单的
var
ads : TAdoDataSet.
...
ads := TAdoDataSet.Create(nil).
ads.Connection := conn. //conn为TAdoConnection类连接access
ads.CommandText := scmd. //需要备份数据的SQL语句
ads.open.
ads.SaveToFile(sfilename). //sfilename备份文件的文件名(xml格式)_
ads.close.
ads.free.
2、恢复 也是采用上面的思路
使用TAdoDataSet来打开*.xml文件,用过First,Next,Fields[0].Value 获得记录的值,然后另外创建一个TAdoQuery或者TAdoTable进行添加记录很简单。
但是这里存在一个问题:
假如程序开发前我们不知道该xml文件的表的名称和结构怎么办?
其实在xml文件中存在上述信息我们必须想办法来读出了。
3、读xml文件 此格式xml文件不是普通的格式而是Schema的。
delphi6通过XML Data Binding可以读出真个的xml文件
delphi6->.File->.new->.Others...->.XML Data Binding后出现第一个对话框
选择要读取xml的文件名,下一步按照默认,下一步按照默认点击完成按钮在你项目中添加了一个pas文件。
Options按钮可以修改影射关系(数据类型等等)
仔细察看pas文件与xml文件你就能发现它们的对应关系即可读出你想要的信息。
例如:
unit Unit1.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids,xmldom, msxmldom,
XMLDoc, XMLIntf,Unit2.
type
TForm1 = class(TForm)
XMLDocument1: TXMLDocument.
Button6: TButton.
Edit1: TEdit.
Edit2: TEdit.
procedure FormCreate(Sender: TObject).
procedure Button6Click(Sender: TObject).
private
{ Private declarations }
public
{ Public declarations }
end.
var
Form1: TForm1.
xmls: IXMLXmlType.
inext : integer.
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject).
begin
xmldocument1.FileName := ’testdata.xml’.
xmls := Getxml(xmldocument1).
inext := 0.
end.
procedure TForm1.Button6Click(Sender: TObject).
var
ixmltl : IXMLAttributeTypeList.
ixmlt : IXMLAttributeType.
begin
ixmltl := xmls.Schema.ElementType.AttributeType.
if inext <.= ixmltl.Count - 1 then
begin
ixmlt := ixmltl[inext].
Edit1.Text := ixmlt.Name.
Edit2.Text := ixmlt.Keycolumn.
inc(inext).
end
else
inext := 0.
end.
end.
2009年9月全国计算机等级考试时间及科目预告
2009年NCRE考试有新变化
2009年全国计算机等级考试-大纲
全国计算机等级考试历年真题及答案
2009年上半年全国计算机等级考试试题及答案