TXT文件导入sql数据库时分隔符控制

小结:

Txt文本文件分隔符format有多种。例如:逗号,分号,制表符等

详细参考 :http://msdn.microsoft.com/en-us/library/ms709353%28VS.85%29.aspx

直接用jet引擎导入,例如:

SELECT  *
INTO    jiaofei
FROM    OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
                   'Text;HDR=YES;FMT=TabDelimited;DATABASE=F:\'
, jiaofei#txt)
 --aa#txt是文本文件名aa.txt 

其中:“text;HDR=Yes;FMT=TabDelimited”;

hdr=yes 意思是首行是否包含列名称

FMT=TablDelimited 意思是格式的分割限定

实际导入时,发现源文件是使用”制表符“分隔的,但导入后没有分隔。

经查资料,发现如下两种解决方案:

方案一:修改注册表。

修改注册表中:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text “format”的键值

默认的分隔符为CSV分隔“,”文件是制表符分隔的,那么就要把”format”的键值改成“Tabdelimited”

方案二:增加Schema.ini来订制格式

数据类型, Schema.ini 必须与txt或者csv文件在同一目录下才能生效。

Schema.ini 内容

[test1.txt]
Format=TabDelimited
ColNameHeader=True
MaxScanRows=0
CharacterSet=ANSI
a=F1 Char Width 3
b=F2 Char Width 10
c=F3 Integer

发表在 日记 | 标签为 , | 2 条评论

sql导入和导出数据到Excel的方法

接口类型

有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。

Jet 引擎可以访问 Office 97-2003,但不能访问 Office 2007。

ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。

另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

Microsoft.ACE.OLEDB.12.0 安装文件:

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

继续阅读

发表在 学习笔记 | 标签为 , | 留下评论

SqlBulkCopy使用

SQLBulkCopy用于批量复制数据。性能优势明显。

使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader实例读取数据(如:SqlDataReader)。

示例:

    //sqlbulkCopy 批量插入数据库
            using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
            {
                //一次批量的插入的数据量
                sqlBC.BatchSize = 10000;
                //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
                sqlBC.BulkCopyTimeout = 60;
                //设置要批量写入的表
                sqlBC.DestinationTableName = "dbo.tbl_test";

                //自定义的datatable和数据库的字段进行对应
                sqlBC.ColumnMappings.Add("A", "col_A");
                sqlBC.ColumnMappings.Add("B", "col_B");

                //批量写入
                sqlBC.WriteToServer(dt);
            }

 

继续阅读

发表在 学习笔记 | 标签为 , | 一条评论

骑行子午峪

路线:韦曲——子午大道——黄良——小五台收费站——小五台——金仙观

总里程:42KM

杜甫诗一首:

故人昔隐东蒙峰,已佩含景苍精龙。

故人今居子午谷,独向阴崖结茅屋。

屋前太古玄都坛,青石漠漠长风寒。

子规夜啼山竹裂,王母昼下云旗翻。

知君此计诚常往,芝草琅杆日应长。

铁锁高垂不可攀,致身福地何萧爽。

记录:

此行虽然40KM,但有些累人,从子午峪口进山,爬山路4KM左右,山坡路段比较惊险,实在陡峭的路段,我只有推行的力气,爬山途中消耗两瓶“康师傅”。下坡途中,双手紧紧hold住车把,稍有疏忽,面对我的将是万丈深沟。不过沿途风景怡人,此段不愧是西安地区最受民众喜爱的探山路线之一。沿途遇无数游客,山谷春日的周末,人口密度绝不亚于钟楼…

歇息途中,在半山坡的小溪旁被“铛铛铛”的砸石声触动心灵。声声敲我心扉,眼前无数进山游玩者,我同他们一样,是为了享受自然赐予我们的这一切吧,然而他砸着一块块石头,却是为了生存。风景多美,对他也许只是浮云。车轮后面是我的人生,一声声敲打是他的人生…虽生在福地,但生活仍需靠双手!这就是我们每一个的普通人生。

子午峪口风光IMG_0003小树IMG_0001

继续阅读

发表在 骑行日记 | 标签为 , , , | 2 条评论

cdnzz邀请码

CDNZZ是一家提供类似于CloudFlare的服务的网站。他与CloudFlare不同,不需要修改dns,他家CDN的方式是CNAME的。国内访问速度相当不错。

目前注册需要邀请码,放10个,拿了说声。

invitation code:
254680486085
254610019191
254684558990
254646162012
254635363929
254681206483
254619795749
254683278890
254691691315
254687341895

发表在 日记 | 标签为 , , | 3 条评论