Я использую следующий код, основанный на предыдущих постах и ответах Рему и Энтони Джонса.
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 задано значение No. В нем имена моих столбцов будут указаны в кавычках перед фактическими данными, что вызывает проблемы при попытке импорт.
Моя вторая проблема заключается в том, что специальные символы, по-видимому, не экранированы.
Я загружаю данные в mysql с помощью:
LOAD DATA LOCAL INFILE 'file' INTO TABLE MYTABLE FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
Я также пытался без предложения ESCAPED BY.
Проблема состоит в том, что одно из полей содержит html-данные, что означает кавычки, косые черты и т. Д. Это приводит к тому, что данные импортируются некорректно, поля даты вставляются в поля имен пользователей и тому подобное. Как я могу избежать этого или импортировать правильно?
Я использую файл sche.ini, как показано ниже:
[CSV2009427.csv]
ColNameHeader=No
CharacterSet=65001
Format=Delimited(;)
Col1=article_no Char Width 19
И заголовки столбцов по-прежнему экспортируются. Разве невозможно сделать это таким образом, не требуя schema.ini? То есть возможность использовать скрипт в переносимом виде, где schema.ini может не существовать всегда?