用AdoDataSet实现数据表的导入导出
2008-04-30 20:15
495 查看
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);beginwith AdoDataSet1 dobeginClose;CommandText := ‘select * from ’ + strTableName;Open;SaveToFile(strFileName);Close;end;end;2.数据表的导入下面是一个导入操作的示例(假定存在相同主键记录时更新目的表;假定数据表为单主键字段,且其字段类型为字符串型)。Procedure ImportData(strFileName, strTableName, strKeyFieldName: string);beginwith AdoDataSet1 dobeginClose;LoadFromFile(strFileName);First;While not eof dobeginStrKeyValue := FieldByName(strKeyFieldName).AsString;If RecordInDest(strTableName, strKeyFieldName, strKeyValue) thenbeginAdoDataDest.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 doAdoDataSetDest.Fields[I] := Fields[I];AdoDataSetDest.Post;endelse // 添加记录beginAdoDataDest.Close;AdoDataSetDest.CommandText := Format(‘select * from %s where 1=0’,[strTableName]); // 获取字段列表AdoDataSetDest.Open;AdoDataSetDest.Insert;for i:=0 to FieldList.Count-1 doAdoDataSetDest.Fields[i] := Fields[i];AdoDataSetDest.Post;end;Next;end;end; // 判断指定主键值的记录在表中是否存在function RecordInDest(strTableName, strKeyFieldName, strKeyValue: string): boolean;beginwith AdoQuery1 dobeginClose;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; 如果对数据表的情况进行进一步的考虑,并结合更周密的导入导出方案,比如导入指定字段、导入指定字段、导入指定记录等等,对导入导出过程进行更详细的控制,就可以实现强大的、通用的数据表的导入导出工具。
相关文章推荐
- delphi学习点滴——用AdoDataSet实现数据表的导入导出
- ado.net实现简单的数据导入和导出
- 黑马程序员_学习日记48_616数据库开发及ADO.Net(带参数的Sql语句、数据库与文本文件导入导出、省市联动、资料管理器、DataSet (ado.net断开式数据访问)、SQLHelper)
- 实现ADO,Excel,Aceess,.NET托管代码见的相互导入导出,利用代码实现数据的相互转换
- ThinkPHP使用phpExcel实现Excel数据的导入导出(真正的完全步骤)
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
- 用pl/sql实现oracle数据的导出和导入
- C#实现Excel模板导出和从Excel导入数据
- 黑马程序员--ADO.NET数据导入导出
- 如何实现oracle不同版本间数据的导入导出
- 在pl/sql中使用exp/imp工具实现oracle数据导出/导入
- vb用imp和exp来实现部分数据的导入导出
- thinkphp实现excel数据的导入导出
- docker实现导出、导入和数据搬迁
- 使用T-SQL实现数据导出\导入(SQLSERVER—>SQLSERVER)
- 使用POI实现在java程序中导入导出Excel文件数据
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- 使用PHPExcel实现对excel数据的导入和导出
- 使用phpExcel实现Excel数据的导入导出(完全步骤)