2011-08-08 6 views
3

英数字データを持つcsvファイルを読み込む際に問題があります。以下古典的なasp - 英数字データを含むcsvファイルを読み取る

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ 
ls_map_path & ";Extended Properties=""Text;HDR=Yes;FMT=Delimited"";" 


Set lo_conn = Server.CreateObject("ADODB.Connection") 
lo_conn.Open strConn 

Set lo_rs = Server.CreateObject("ADODB.recordset") 
lo_rs.CursorLocation = adUseClient 
lo_rs.open "SELECT * FROM " & as_file_name, lo_conn, adOpenStatic, adLockOptimistic, adCmdText 

とデータされています:

user_id,status,last_name,first_name,middle_name 
1234,1,DeVera,athan,M. 
1234,1,De Vera,athan,M. 
ABC1,1,Santos,Shaine 
abcd,1,Santos,Luis 
1234,1,De Vera,athan,M. 
1234,1,De Vera,athan,M. 
ABC1,1,Santos,Shaine 

lo_rs.fields.Item("user_id")を使用して "USER_ID" コラムを読んで、それは完全に "1234" のuser_id値を取得以下、従来のASPでの私のコードです。英数字の値を持つ他のデータは私にnullを返しています。

nullが返される理由はわかりません。ただし、データがすべて英数字の場合、user_id列は完全に読み取られます。私は、唯一の問題は、csvデータに数値と英数字の値が混在している場合です。

誰でもこれを解決する方法を知っていますか?または、おそらく私はちょうど接続文字列に不足しているテキストを持っています。

事前にご相談ください。

答えて

2

タイプ推論を回避するには、CSVファイルの各列のタイプを定義するSCHEMA.INIを作成します。

CSV(ls_map_path)を含むディレクトリに設定HDR=NO &はschema.iniというを作成する:テキスト・プロバイダによって使用される

[filenamehere.csv] 
Col1=user_id Text 
Col2=status Long 
Col3=last_name Text 
Col4=middle_name Text 

型マッピングについて上記のスキーマに基づいています。

+0

回答ありがとうございます。 csvファイルはアップロードされており、私のWebサイトで読むことができます。意味、ユーザーがcsvファイルをアップロードするたびに、schema.iniファイルを再作成する必要がありますか?ありがとう。 – jeff

+0

'Majority Type'ではなく' HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text \ ImportMixedTypes = Text'を使ってグローバルに変更することができます –

+0

これは素晴らしいことでした!ありがとうございました。 – jeff

関連する問題