我正在使用以下代码,基于 Remou 和 Anthony Jones 之前的帖子和回答。
Dim db: db = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\baywotch.db5"
Dim exportDir: exportDir = "C:\Dokumente und Einstellungen\hom\Desktop"
Dim exportFile: exportFile=NewFileName(exportDir)
Dim cn: Set cn = CreateObject("ADODB.Connection")
cn.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source =" & db
cn.Execute "SELECT * INTO [text;HDR=No;Database=" & exportDir & _
";CharacterSet=65001]." & exportFile & " FROM tblAuction"
'Export file
'Support functions
Function NewFileName(ExportPath)
Dim fs
Dim NewFileTemp
Set fs = CreateObject("Scripting.FileSystemObject")
NewFileTemp = "CSV" & Year(Date) _
& Month(Date) & Day(Date) & ".csv"
NewFileName = NewFileTemp
End Function
我遇到的问题是,当我导出文件时,csv 文件包含标题,尽管 HDR 设置为否。它会在实际数据之前用引号引起来我的列的名称,这在尝试时会导致问题导入。
我的第二个问题是特殊字符似乎没有被转义。
我正在将数据加载到 mysql 中:
LOAD DATA LOCAL INFILE 'file' INTO TABLE MYTABLE FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
我也尝试过不使用 ESCAPED BY 子句。
问题是其中一个字段包含 html 数据,这意味着引号、斜杠等。这会导致数据导入不正确,日期字段被插入到用户名字段等。我如何逃脱以阻止这种情况发生或正确导入?
我正在使用如下所示的 scheme.ini:
[CSV2009427.csv]
ColNameHeader=No
CharacterSet=65001
Format=Delimited(;)
Col1=article_no Char Width 19
并且列标题仍然被导出。不需要 schema.ini 就不能以某种方式执行此操作吗? IE。能够以可移植的方式使用脚本,其中 schema.ini 可能并不总是存在?
最佳答案
The problem I am having, is when I export the file, the csv file contains headers, despite HDR being set to No.
我认为您需要在 Schema.ini File 中包含 ColNameHeader=False
.
例子:
C:\schema.ini
[blah.csv]
ColNameHeader=False
CharacterSet=1252
Format=CSVDelimited
Col1=pence_amount Integer
SQL 代码:
SELECT * INTO [text;Database=C:\].blah#csv FROM Coins;
请注意,schema.ini 文件保存在 SQL 连接字符串中 Database
指定的同一目录中。
结果:没有标题。
关于mysql - 从 vbs 和 Access 中将 csv 文件导入 mysql 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797239/