Я использую следующий код, основанный на предыдущих сообщениях и ответах Рему и Энтони Джонса.
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, что означает кавычки, косые черты и т. д. Это приводит к неправильному импорту данных, при этом поля даты вставляются в поля имен пользователей и т. д. Как я могу избежать этого, чтобы этого не произошло, или правильно импортировать?
Я использую схему.ini следующим образом:
[CSV2009427.csv]
ColNameHeader=No
CharacterSet=65001
Format=Delimited(;)
Col1=article_no Char Width 19
И заголовки столбцов по-прежнему экспортируются. Разве это невозможно сделать без schema.ini? т.е. возможность использовать сценарий переносимым способом, где schema.ini может не всегда существовать?