delphi ADO 连接文本文件 txt CVS等如何连
delphi ADO 支持到文本文件 txt CVS等的连接,直接当一个数据源来处理,可是我找了好久,没有找到连接串如何写,大家指点下!
[解决办法]
看我以前回过的
http://topic.csdn.net/t/20060414/10/4686187.html
[解决办法]
另外,直接用ADO也可以:连接串:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=d:\temp;Mode=Share Deny None;Extended Properties=TEXT;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=96;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
不要看它很长,可以自动生成的:
提供者:Microsoft.Jet.OLEDB.4.0
数据库名称:d:\temp ///你text所在目录
空白密码,允许保存密码
然后设:所有中的Extended Properties为text就OK了
不用任何INI文件。TEXT第一行为字段名,用“,”隔开
然后在ADOQuery中写SQL为
select * from t.txt //你的文件名
就OK了
[解决办法]
1.生成的短是没问题的,我是因为反复试过多个参数,生成的,所以会长。只要可用就行。
2.如果分割符不是 "," ,而是其它的,可以用schema.ini来处理
在文本文件同目录下写一个schema.ini文件内容如下
[t.txt] //文件名
ColNameHeader=NO //如果你的文件第一列不是字段名,加这行,否则不要
Format=Delimited( ) //( )中为分割符,注意空格,如果是其它的如~等都可以
Col1=n1 char width 10 //字段描述,如果第一行是字段名,这个可以省
Col2=n2 char width 10 //但也可以有。以修改字段名,类型,宽度等
col3 =n3 char width 10
[t1.txt] //可以多个文件,相当于数据库中多个表
。。。
[解决办法]
我试了一下,FMT=Delimited;';' 没有任何作用,对于FMT=Delimited,网上有一堆,但我的测试都不可用,只能用","号,按网上说的,要用制表符,可用FMT=TabDelimited,但我的测试仍不可用
在schema.ini下用
Format=TabDelimited
是可以的。