鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > c++ > >

快速的CSV文件生成器

来源:互联网 作者:佚名 时间:2013-08-31 10:56
介绍在某些应用程序中,往往需要将数据库表中的数据取出来存为CSV文件。看起来是很容易的一件事情,但是如果要做到灵活,而且要在取大数据量的表时保证足够的性

介绍
在某些应用程序中,往往需要将数据库表中的数据取出来存为CSV文件。看起来是很容易的一件事情,但是如果要做到灵活,香港服务器,而且要在取大数据量的表时保证足够的性能,美国空间,却需要认真考虑。本CSV文件生成器的设计考虑满足以下指标:
1、支持多种不同的数据库,如Oracle,SQL Server等
2、程序尺寸要小
3、足够的性能

程序的设计
基本的思路是采用C++通过ATL作出一个COM组件,然后用解释性语言如C#来调用。数据库访问采用ADO来实现,从本人的经验来说,我是不太愿意使用ADO的,虽然它很通用各种数据库都可以访问,服务器空间,微软也很推崇,但是它对多线程应用支持的却很差,而且一堆繁琐的智能指针,能把人给扎死。但是考虑到其通用性,而且现在好像比较时髦,还是勉为其难的采用了ADO.

CSV文件生成器说明
1. 支持不同数据库访问
2. 满足CSV文件格式的要求
3. 能支持指定多个表的CSV文件生成
4. 支持SQL语句的CSV文件生成
5. 可设置文件后缀、分隔符等
方法描述

Methods

Description

BlindFetchCSVData

Fetch data from one or multiple tables and writes to CSV files. File name has same name as table name

FetchCsvData

Fetch data into cache specified by a SQL

WriteToCSV

Write Cache Data into a CSV file.

GetConnectionStringFromCfg

Get DB connection info from a profile file

FetchAndWriteCsv

Fetch data specified by a SQL and write to CSV file

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

属性描述

Properties

Description

ConnectionString

DB connection string.

File suffix.default is csv.

Delimiter between fields.

Delimiter between rows.

Header

Specify header is required or not. default is required.

NumOfTables

Number of tables to be queried

TableName

Table name to be queried

 

 

 

 

 

 

 

 

 

 

 

 

 

怎样实验CSV文件生成器
在提供的可执行文件包中包含了两个文件一个是ATLCSV.dll,一个是ATLV6Client.exe, 先用如下命令要注册一下组件
D:\> regsvr32 /c atlcsv.dll
然后敲一下atlv6client,看一下程序的使用说明,
D:\>atlv6client
Usage:
        atlv6client user=... table=... sql=... field=... row=... suffix=...
(@) Copyright Thomas WANG 2007, all rights reserved.
Parameters:
        user=username/password@tnsname.mandatory parameter
        table=table1|table2|...|tablen.mandatory parameter if not specify sql
        sql=SQL statement.mandatory parameter if not specify table
        opt=nMode|nStart|nDelta start position and Delta.optional.nMode can
         be 1,2or3. 1:default value 2:segmentation operations on a table
        3:fetch to cache and write.if say 2, also speficy nStart,nDelta.
        field=seperator string between fields. default is ","
        row=seperator string between rows. default is "\n"
        suffix=file suffix. default is csv
        Notes: No space adjacent to =

网友评论
<