使用 ADODB 打开 csv 文件作为记录集时的空备注字段
Null memo fields when opening a csv file as a recordset using ADODB
我对此非常困惑,不知道如何进行。我正在使用 ADODB 打开一个 CSV 文件,它工作正常,但是 CSV 文件中存在的我的文本字段被打开为空字段,所有数字字段都被正确设置。
我这样打开CSV文件;
Set adoOpen = Server.CreateObject("ADODB.Connection")
adoOpen.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:/;Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"
adoOpen.Open
Set rsOpenRS = Server.CreateObject("ADODB.Recordset")
sSQL = "SELECT * FROM `Import.csv`"
rsOpenRS.Open sSQL, adoCon
我还设置了一个 schema.ini 文件,告诉它我希望如何打开我的字段,就像这样
[Import.csv]
ColNameHeader=True
Format=CSVDelimited
Col1=MyTextField Memo
Col2=MyNumberField Double
Col3=MyOtherNumberField Double
我的 CSV 文件中的数据如下所示
MyTextField,MyNumberField,MyOtherNumberField
"Some text here",1,100
当我遍历我的字段时,我希望看到以下内容
MyTextField = Some text here
MyNumberField = 1
MyNumberField = 100
但我得到的是这个
MyTextField =
MyNumberField = 1
MyNumberField = 100
它只是忽略该字段中的文本,但 CVS 文件中肯定有该文本作为开头。
我试过使用 Text 而不是 Memo,这很有效,但是它只返回前 255 个字符,而且我的一些字段超过了这个,所以它们被截断了。
希望有人能帮帮我。
干杯
好的,所以我更改了我的连接字符串
Driver={Microsoft Text Driver (*.txt; *.csv)}
到
Provider=Microsoft.Jet.OLEDB.4.0
现在可以了
我对此非常困惑,不知道如何进行。我正在使用 ADODB 打开一个 CSV 文件,它工作正常,但是 CSV 文件中存在的我的文本字段被打开为空字段,所有数字字段都被正确设置。
我这样打开CSV文件;
Set adoOpen = Server.CreateObject("ADODB.Connection")
adoOpen.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:/;Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"
adoOpen.Open
Set rsOpenRS = Server.CreateObject("ADODB.Recordset")
sSQL = "SELECT * FROM `Import.csv`"
rsOpenRS.Open sSQL, adoCon
我还设置了一个 schema.ini 文件,告诉它我希望如何打开我的字段,就像这样
[Import.csv]
ColNameHeader=True
Format=CSVDelimited
Col1=MyTextField Memo
Col2=MyNumberField Double
Col3=MyOtherNumberField Double
我的 CSV 文件中的数据如下所示
MyTextField,MyNumberField,MyOtherNumberField
"Some text here",1,100
当我遍历我的字段时,我希望看到以下内容
MyTextField = Some text here
MyNumberField = 1
MyNumberField = 100
但我得到的是这个
MyTextField =
MyNumberField = 1
MyNumberField = 100
它只是忽略该字段中的文本,但 CVS 文件中肯定有该文本作为开头。
我试过使用 Text 而不是 Memo,这很有效,但是它只返回前 255 个字符,而且我的一些字段超过了这个,所以它们被截断了。
希望有人能帮帮我。
干杯
好的,所以我更改了我的连接字符串
Driver={Microsoft Text Driver (*.txt; *.csv)}
到
Provider=Microsoft.Jet.OLEDB.4.0
现在可以了