首 页 教育新闻课件中心论文中心教学教案试题中心语文专题综合下载技术教程公务员  
设为首页
加入收藏
联系我们
您当前的位置:中国教育资源网 -> 技术教程 -> 软件开发 -> Delphi -> 技术内容 退出登录 用户管理

用AdoDataSet实现数据表的导入导出Delphi教程

论文作者:佚名  论文来源:不详  论文发布时间:2006-6-19 22:35:52  论文发布人:chjchjchj

减小字体 增大字体

 
Delphi中的AdoDataSet是支持ADO访问的主要组件,它支持从数据表直接获取数据,支持用SQL语句获取数据。最重要的是,它定义和实现了两个重要的例程:



  procedure LoadFromFile(const FileName: WideString);它从文件中加载数据集。

  procedure SaveToFile(const FileName: String = ''; Format: TPersistFormat = pfADTG);它将数据集保存到文件中。Format确定文件中数据集的保存格式,可以使用的有pfADTG (Advanced Data Tablegram format)、pfXML(Extendable Markup Language)。

  因此AdoDataSet是实现导入导出的良好的基础。

  1.数据表的导出

  导出数据表的操作如下:

  1)打开数据表,设置需要导出的条件;

  2)使用AdoDataSet,调用SaveToFile导出记录;

  下面是一个导出操作的示例(假定导出指定数据表的全部记录)。


  procedure  ExportData(strFileName, strTableName: string);

  begin

  with AdoDataSet1 do

  begin

  Close;

  CommandText := ‘select * from ’ + strTableName;

  Open;

  SaveToFile(strFileName);

  Close;

  end;

  end;

 

[page]


2.数据表的导入

  下面是一个导入操作的示例(假定存在相同主键记录时更新目的表;假定数据表为单主键字段,且其字段类型为字符串型)。


  Procedure  ImportData(strFileName, strTableName, strKeyFieldName: string);

  begin

  with AdoDataSet1 do

  begin

  Close;

  LoadFromFile(strFileName);

  First;

  While not eof do

  begin

  StrKeyValue := FieldByName(strKeyFieldName).AsString;

  If RecordInDest(strTableName, strKeyFieldName, strKeyValue) then

  begin

  AdoDataDest.Close;

  AdoDataSetDest.CommandText := Format(‘select * from %s where %s=%s’,[strTableName, strKeyFieldName, QuotedStr(strKeyValue)]);

  AdoDataSetDest.Open;

  AdoDataSetDest.First;

  AdoDataSetDest.Edit;

  for I:=0 to FieldList.Count-1 do

  AdoDataSetDest.Fields[I] := Fields[I];

  AdoDataSetDest.Post;

  end

[page]



  else         // 添加记录

  begin

  AdoDataDest.Close;

  AdoDataSetDest.CommandText := Format(‘select * from %s where 1=0’,[strTableName]);  // 获取字段列表

  AdoDataSetDest.Open;

  AdoDataSetDest.Insert;

  for i:=0 to FieldList.Count-1 do

  AdoDataSetDest.Fields[i] := Fields[i];

  AdoDataSetDest.Post;

  end;

  Next;

  end;

  end;

  // 判断指定主键值的记录在表中是否存在

  function RecordInDest(strTableName, strKeyFieldName, strKeyValue: string): boolean;

  begin

  with AdoQuery1 do

  begin

  Close;

  SQL.Clear;

  SQL.Add(Format(‘select count(*) from %s where %s=%s, [strTableName, strKeyFieldName, QuotedStr(strKeyValue)]));

  Open;

  result := Fields[0].AsInteger > 0;

  Close;

  end;

  end;

  如果对数据表的情况进行进一步的考虑,并结合更周密的导入导出方案,比如导入指定字段、导入指定字段、导入指定记录等等,对导入导出过程进行更详细的控制,就可以实现强大的、通用的数据表的导入导出工具。

 
[] [返回上一页] [打 印] [收 藏]  
 ∷相关技术评论  (评论内容只代表网友观点,与本站立场无关!) [查看发表评论...]
 
 中国教育资源网免费技术教程下载中心-站内广告 站内广告 中国教育资源网免费技术教程下载中心-站内广告 
 中国教育资源网站内搜索 站内搜索 中国教育资源网站内搜索 
 

   
 中国教育资源网免费技术教程下载中心-栏目导航 栏目导航 中国教育资源网免费技术教程下载中心-栏目导航 
· C · Delphi
· Java · vb
 
中国教育资源网免费技术教程下载中心-相关教程  相关技术 中国教育资源网免费技术教程下载中心-相关教程
· [图文] Foxmail中妙用“导入
· 用Adobe Acrobat解决
· [图文] 妙用Foxmail导入导出
· SQL语句导入导出大全
· 关于DTS导入导出丢失
· MySQL数据导入导出方
· 从MySQL导入导出大量
· MySQL数据导入导出工
· MySQL数据导入导出方
 中国教育资源网免费技术教程下载中心-本月热门教程 本月热门 中国教育资源网免费技术教程下载中心-本月热门教程 
 
 中国教育资源网免费技术教程下载中心-本日热门论文 本日热门 中国教育资源网免费技术教程下载中心-本日热门论文 
 
关于本站 - 网站帮助 - 免费课件 - 美容 - 绿色软件 - 软件下载 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站留言
浙ICP备06010405号 Email:cnkjz@163.com 技术支持:名流设计
版权所有 Copyright© 2002-2004 名流