проблема импорта CSV-файлов в MySQL из VBS и доступа - PullRequest
1 голос
/ 28 апреля 2009

Я использую следующий код, основанный на предыдущих постах и ​​ответах Рему и Энтони Джонса.

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 может не существовать всегда?

1 Ответ

1 голос
/ 28 апреля 2009

Проблема, с которой я сталкиваюсь, это когда я экспортировать файл, файл csv содержит Заголовки, несмотря на то, что HDR установлен на №

Я думаю, вам нужно включить ColNameHeader=False в файл Schema.ini .

Пример:

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 сохраняется в том же каталоге, который указан Database в строке подключения в SQL.

Результат: без заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...