2009-04-28 1 views
1

Remou 및 Anthony Jones의 이전 게시물과 답변을 기반으로 다음 코드를 사용하고 있습니다.vbs 및 액세스에서 mysql에 csv 파일을 가져 오는 데 문제가 있습니다.

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 

오전 데 문제는, HDR은 그것의 원인이되는 실제 데이터, 전에 따옴표 내 열 이름이있을 것이다 번호로 설정에도 불구하고 내가 파일을 내보낼 때, CSV 파일, 헤더가 포함되어 있습니다 가져 오기를 시도 할 때의 문제.

두 번째 문제점은 특수 문자가 이스케이프되지 않는 것입니다.

난으로 MySQL의에 데이터를로드 오전 :

LOAD DATA LOCAL INFILE 'file' INTO TABLE MYTABLE FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' 

나는 또한 절로 이스케이프하지 않고 노력했다.

문제는 필드 중 하나에 따옴표, 슬래시 등을 의미하는 html 데이터가 포함되어 있다는 것입니다. 이로 인해 데이터가 잘못 가져 오게되고 날짜 필드가 사용자 이름 필드 등에 삽입됩니다. 이 문제가 발생하지 않도록하려면 어떻게 피할 수 있습니까?

[CSV2009427.csv] 
ColNameHeader=No 
CharacterSet=65001 
Format=Delimited(;) 
Col1=article_no Char Width 19 

을 그리고 열 머리글은 여전히 ​​수출하고 있습니다 :

나는 다음과 같은 scheme.ini을 사용하고 있습니다. schema.ini를 요구하지 않고 이런 방식으로 작업을 수행 할 수 있습니까? 나는. schema.ini가 항상 존재하지 않는 포터블 방식으로 스크립트를 사용할 수 있습니까? 내가 파일을 내보낼 때

+0

csv를 사용해야하는 이유가 있습니까? VBScript를 이미 사용하고 있다면 두 데이터베이스에 모두 연결하고 데이터를 전송하는 것이 좋습니다. 나는 왜 당신이 csv를 만들기 위해 VBScript를 사용하는지 이해하지 못한다. – Tester101

답변

1

오전 데 문제가있다, CSV 파일은 HDR은 내가 당신이 ColNameHeader=False을 포함해야 할 필요가 있다고 생각 번호

로 설정에도 불구하고 헤더를 포함 Schema.ini File.

예 :

C : \있는 schema.ini

[blah.csv] 
ColNameHeader=False 
CharacterSet=1252 
Format=CSVDelimited 
Col1=pence_amount Integer 

SQL 코드 :에 Database에 의해 지정된대로있는 schema.ini 파일이 같은 디렉토리에 저장됩니다

SELECT * INTO [text;Database=C:\].blah#csv FROM Coins; 

주 SQL의 연결 문자열.

결과 : 헤더가 없습니다.

+0

schema.ini는 없으며 vbscript와 데이터베이스 만 있습니다. –

+0

실제로 schema.ini 파일이 생성되고 ColNameHeader = True로 설정됩니다. –

+0

글쎄, 거짓으로 설정하려고 : – onedaywhen

관련 문제