CSV ファイルを読み取って DB テーブル「従業員」に挿入する必要がある ASP ページを使用しています。TestReader のオブジェクトを作成しています。読み込んでいるCSVファイルの行/レコード数まで実行するループを書くにはどうすればよいですか?
38716 次
2 に答える
15
自分でファイルを解析しようとしないでください。頭が痛くなるだけです。改行とコンマで分割する以外にも、かなりの作業があります。
OLEDB を使用して、レコードセット内のファイルを開き、db テーブルと同じように読み取ることができます。このようなもの:
Dim strConn, conn, rs
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("path to folder") & ";Extended Properties='text;HDR=Yes;FMT-Delimited';"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
Set rs = Server.CreateObject("ADODB.recordset")
rs.open "SELECT * FROM myfile.csv", conn
while not rs.eof
...
rs.movenext
wend
私の vbscript は錆びているので、構文を確認してください。
編集: harpo のコメントは、フィールド定義に関する良い点をもたらします。schema.ini ファイルを定義すると、予想されるフィールドの数とデータ型を定義できます。参照: schema.ini ファイルを定義することでこれを処理できます。参照: http://msdn.microsoft.com/en-us/library/ms709353.aspx
于 2008-10-17T20:33:07.820 に答える
6
CSV を挿入しないのはなぜですか? 例えば:
SELECT * INTO MyTable FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Data Source=F:\MyDirectory;Extended Properties="text;HDR=No"')...
[MyCsvFile#csv]
出典: http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.database.ado/2007-05/msg00057.html
于 2008-10-17T20:38:03.113 に答える