数据库文本导入的问题 可通过配置schema.ini文件来实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用 Schema.ini 文件作用:Schema.ini用于提供文本文件中记录的构架信息。每个 Schema.ini 项都用于指定表的五个特征之一:1、文本文件名2、文件格式3、字段名、字段长度、字段类型4、字符集5、特别数据类型转换1.指定文件名文件名要用方括号括起来,例如如果要对 Sample.txt 使用数据构架信息文件,那么它的对应的项应该是[Sample.txt] 2.指定文件格式格式说明 表格式 Schema.ini 格式描述 Tab 制表符分隔 文件中的字段用制表符分隔 Format=TabDelimited CSV 分隔 文件中的字段用逗号来分隔 Format=CSVDelimited 自定义分隔 文件中的字段可以用任何字符来分隔, Format=Delimited(自定义分隔符) 所有的字符都可以用来分隔,包括空格, 但是双引号 ( " ) 除外 - 或者没有分隔符 - Format=Delimited( )固定宽度 文件中的字段为固定长度 3.指定字段你可以有两种方法在一个字符分隔的文本文件中指定字段名1、在文本文件中的第一行包含字段名,并且设置 ColNameHeader 为 True 。2、用数字编号指定每一列并且指定每一列的名字以及数据类型你必须用数字编号指定每一列并且指定每一列的名字、数据类型以及长度(在固定长度分隔的文本文件中需要指定长度)注意,设定了 ColNameHeader 选项,在 Schema.ini 中 Windows 注册时会忽略FirstRowHasNames 选项。你也可以指定字段的数据类型,使用 MaxScanRows 选项用来指定在确定列的数据类型时要扫描多少行数据。设置 MaxScanRows 为 0 将扫描整个文件。如果文本文件第一行包含字段名,并且要扫描整个文件,则:ColNameHeader=TrueMaxScanRows=0 接下来的项目用来指定表中的字段,使用列编号(Coln)选项来指定列。字段长度在“固定分隔文本文件中”是必填项目,在“字符分隔文本文件”中是可选项目。示例:定义 2 个字段,CustomerNumber 是长度为 10 的文本字段、CustomerName 是长度为 30 的文本字段。Col1=CustomerNumber Text Width 10Col2=CustomerName Text Width 30 语法如下:Coln=ColumnName type [Width #]参数解释如下:参数 说明 ColumnName 文本,标识字段名,如果包含空格要用双引号括起来 type 数据类型包括:Microsoft Jet 数据类型:Bit Byte Short Long Currency Single Double DateTime Text MemoODBC 数据类型: Char (same as Text) Float (same as Double) Integer (same as Short) LongChar (same as Memo) Date date format其中date format 是日期的格式字符串例如:Date YYYY-MM-DD Width 字符串的长度,后面的数字用来指定字段的长度(“固定分隔文本文件”为必填,“文字分隔文本文件”为可选) # 整形数字,标识字段长度4.指定字符集CharacterSet 项有两个选择:ANSI | OEM选择 ANSI 字符集用如下方法:CharacterSet=ANSI 5.特别数据类型转换: 特别数据类型转换主要是定义比如日期、货币型数据如何转换或者如何显示的 下面给出一个简单的例子,假设有一个表Contacts.txt类似下面:姓名 单位 联系日期 王海 上海有机化学研究所 2002-1-1 罗炙 数字化机床研究院 2004-1-1 导入 Access 应该类似下面表格:姓名 单位 联系日期 王海 上海有机化学研究所 2002-1-1 罗炙 数字化机床研究院 2004-1-1 那么 Schema.ini 则是类似下面的INI文件:[Contacts.txt]ColNameHeader=Trueformat=Delimited(" ")MaxScanRows=0CharacterSet=ANSICol1="姓名" Char Width 10Col2="单位" Char Width 9Col3="联系日期" Date Width 8 注释如下:[Contacts.txt] ///文本文件名ColNameHeader=True ///带有表头format=Delimited( ) ///空格作为分隔符,如果是分号,请用format=Delimited(;) 来解决MaxScanRows=0 ///扫描整个文件CharacterSet=ANSI ///ANSI 字符集Col1="姓名" Char Width 10 ///字段1Col2="单位" Char Width 9 ///字段2Col3="联系日期" Date Width 8 ///字段3///如果有更多字段可 Col4 .... ColN 注意,Schema.ini 必须和需要导入的文本文件在同一目录。 看的不是很明白啊!!我举个例子啊!!比如1.txt文本里面有以下数据:第一行:12345678949494第二行:59049404330303第三行:09940290293020导入后台数据库的表中 a table 一共有两个字段导入规则: 第一行:第一字段取5位 第二个字段取剩下的 第二行:第一字段取3位 第二个字段取剩下的 第二行:第一字段取7位 第二个字段取剩下的大侠,怎么办? BULK INSERT远程读入文件 求一简单sql语句,马上结贴, 几个sql问题 如何求工资异动报表 求一SQL Server2003 SP2 安装完SQL2005系统出问题 麻烦的SQL server哪里错了呀?? sql2008企业版安装问题 关于学生考勤的一些问题,高手请进 更改登陆名 中邪了!!在查询分析器里输入的正确的语句怎么是运行错误的? 求一个字符串替换的综合处理,replace涵数好象不能全部实现,请教各位
每个 Schema.ini 项都用于指定表的五个特征之一:
1、文本文件名
2、文件格式
3、字段名、字段长度、字段类型
4、字符集
5、特别数据类型转换1.指定文件名
文件名要用方括号括起来,例如如果要对 Sample.txt 使用数据构架信息文件,
那么它的对应的项应该是
[Sample.txt] 2.指定文件格式
格式说明 表格式 Schema.ini 格式描述
Tab 制表符分隔 文件中的字段用制表符分隔 Format=TabDelimited
CSV 分隔 文件中的字段用逗号来分隔 Format=CSVDelimited
自定义分隔 文件中的字段可以用任何字符来分隔, Format=Delimited(自定义分隔符)
所有的字符都可以用来分隔,包括空格,
但是双引号 ( " ) 除外
- 或者没有分隔符 - Format=Delimited( )
固定宽度 文件中的字段为固定长度 3.指定字段你可以有两种方法在一个字符分隔的文本文件中指定字段名1、在文本文件中的第一行包含字段名,并且设置 ColNameHeader 为 True 。
2、用数字编号指定每一列并且指定每一列的名字以及数据类型你必须用数字编号指定每一列并且指定每一列的名字、数据类型以及长度
(在固定长度分隔的文本文件中需要指定长度)注意,设定了 ColNameHeader 选项,在 Schema.ini 中 Windows 注册时会忽略
FirstRowHasNames 选项。你也可以指定字段的数据类型,使用 MaxScanRows 选项用来指定在确定列的
数据类型时要扫描多少行数据。设置 MaxScanRows 为 0 将扫描整个文件。如果文本文件第一行包含字段名,并且要扫描整个文件,则:
ColNameHeader=True
MaxScanRows=0 接下来的项目用来指定表中的字段,使用列编号(Coln)选项来指定列。
字段长度在“固定分隔文本文件中”是必填项目,在“字符分隔文本文件”中是可选项目。示例:定义 2 个字段,
CustomerNumber 是长度为 10 的文本字段、
CustomerName 是长度为 30 的文本字段。Col1=CustomerNumber Text Width 10
Col2=CustomerName Text Width 30 语法如下:
Coln=ColumnName type [Width #]参数解释如下:
参数 说明
ColumnName 文本,标识字段名,如果包含空格要用双引号括起来
type 数据类型包括:
Microsoft Jet 数据类型:Bit Byte Short Long Currency Single Double DateTime Text MemoODBC 数据类型: Char (same as Text) Float (same as Double) Integer (same as Short)
LongChar (same as Memo) Date date format其中date format 是日期的格式字符串例如:Date YYYY-MM-DD
Width 字符串的长度,后面的数字用来指定字段的长度
(“固定分隔文本文件”为必填,“文字分隔文本文件”为可选)
# 整形数字,标识字段长度4.指定字符集
CharacterSet 项有两个选择:ANSI | OEM
选择 ANSI 字符集用如下方法:
CharacterSet=ANSI 5.特别数据类型转换:
特别数据类型转换主要是定义比如日期、货币型数据如何转换或者如何显示的
姓名 单位 联系日期
王海 上海有机化学研究所 2002-1-1
罗炙 数字化机床研究院 2004-1-1 导入 Access 应该类似下面表格:
姓名 单位 联系日期
王海 上海有机化学研究所 2002-1-1
罗炙 数字化机床研究院 2004-1-1 那么 Schema.ini 则是类似下面的INI文件:
[Contacts.txt]
ColNameHeader=True
format=Delimited(" ")
MaxScanRows=0
CharacterSet=ANSI
Col1="姓名" Char Width 10
Col2="单位" Char Width 9
Col3="联系日期" Date Width 8 注释如下:
[Contacts.txt] ///文本文件名
ColNameHeader=True ///带有表头
format=Delimited( ) ///空格作为分隔符,如果是分号,请用format=Delimited(;) 来解决
MaxScanRows=0 ///扫描整个文件
CharacterSet=ANSI ///ANSI 字符集
Col1="姓名" Char Width 10 ///字段1
Col2="单位" Char Width 9 ///字段2
Col3="联系日期" Date Width 8 ///字段3
///如果有更多字段可 Col4 .... ColN 注意,Schema.ini 必须和需要导入的文本文件在同一目录。
我举个例子啊!!比如1.txt文本里面有以下数据:
第一行:12345678949494
第二行:59049404330303
第三行:09940290293020
导入后台数据库的表中 a table 一共有两个字段
导入规则: 第一行:第一字段取5位 第二个字段取剩下的
第二行:第一字段取3位 第二个字段取剩下的
第二行:第一字段取7位 第二个字段取剩下的
大侠,怎么办?