三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


asp090.html 三流君ASP:ADO CSVで先頭行にフィールド名が無い時

元の三流解説は、
三流君ASP:ADO CSVで先頭行にフィールド名が無い時
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



ADO Extended Properties='text;HDR=NO' でヘッダー無しCSVと接続 ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>ADO Extended Properties='text;HDR=NO' でヘッダー無しCSVと接続</title>
</head>
<body>
<h1>ADO Extended Properties='text;HDR=NO' でヘッダー無しCSVと接続</h1>
test090-1.asp<br>
ASPからADOを使用してテキストファイル(*.csv)に接続を行う<br>
ファイル名はtest090.csvで、データは,カンマで区切られてます。<br>
先頭行にあると便利なフィールド名が今回はありません。<br>
※データが1行目から入っているカンマ区切りのCSVファイルです<br>
もう一つパラメータ ;Extended Properties='text;HDR=NO'を追加してみました。<br>

<pre>
  <Font Color='Green'>'接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する</Font>
  Con = &quot;Provider=Microsoft.Jet.OLEDB.4.0;&quot; &amp; _
                   &quot;Data Source=&quot; &amp; Server.MapPath(&quot;.&quot;) &amp; &quot;;&quot; &amp; _
                   &quot;Extended Properties=&quot;&quot;text;HDR=No;FMT=Delimited;&quot;&quot;;&quot;
  '↑MapPathに(&quot;.&quot;)を渡し、カレントディレクトリを渡す
</pre><br>
こんな感じで作成しました。
<hr>
<%

  'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん
  Set rs=Server.CreateObject("ADODB.Recordset")

  'SQLのテーブル名には、ファイル名test090.csvを指定します。
  strSQL = "select * from test090.csv"
  '接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する
  Con = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source=" & Server.MapPath(".") & ";" & _
                   "Extended Properties=""text;HDR=No;FMT=Delimited;"";"
  '↑MapPathに(".")を渡し、カレントディレクトリを渡す

  Response.Write "使用する接続文字列は<br>"
  Response.Write "<STRONG><CODE>" & Con & "</CODE></STRONG><br>"
  Response.Write "発行するSQL文字列は<br>"
  Response.Write "<STRONG><CODE>" & strSQL & "</CODE></STRONG><hr>"

  '接続文字列、SQLを渡して、レコードセットを開く
  rs.Open strSQL, Con, 0  '0=adOpenForwardOnly

  'データの表示をテーブルで行う
  Response.Write "<TABLE Border='1'>"

  '見出しを(フィールド名を)そのまま書き込む
  Response.Write "<TR>"
  For Each fld_A In rs.Fields 'フィールドのアイテムに対してループ
     Response.Write "<TH>" & fld_A.Name & "</TH>" '←.Nameでフィールド名
  Next
  Response.Write "</TR>"

  'お約束のEOFまでループは(データが無くなるまでループ)、
  Do While rs.EOF = False   'レコードセットの.EOFがFalseの間
    Response.Write "<TR>"   '内容を表示する
    For Each fld_A In rs.Fields 'フィールドのアイテムに対してループ
       Response.Write "<TD>" & fld_A.Value & "</TD>" '←.Valueでフィールドの値
    Next
    Response.Write "</TR>"
    rs.MoveNext    '次のレコードに移動する
  Loop

  Response.Write "</TABLE></SAMP>"  'テーブルは終わりです

  '後始末
  rs.Close '開いていたレコードセットを閉じる
  Set rs = Nothing 'お行儀よくオブジェクトも開放しましょう

%>
<hr>
無事、F1,F2などと、フィールド名が自動で設定されました。<br>
↓で元のヘッダー(項目名)無しのCSVを確認してみてください。<br>
[<a Href="test090.csv" TARGET="_blank">ヘッダ無しの元ファイルtest090.csvを開く</a>]<br>
</body>
</html>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test090-1.asp実行する



ADO ヘッダー無しのCSVと接続 F1,F2などの自動項目を条件にする ソースコード

<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>ADO ヘッダー無しのCSVと接続 F1,F2などの自動項目を条件にする</title>
</head>
<body>
<h1>ADO ヘッダー無しのCSVと接続 F1,F2などの自動項目を条件にする</h1>
test090-2.asp<br>
ASPからADOを使用してテキストファイル(*.csv)に接続を行う<br>
ファイル名はtest090.csvで、データは,カンマで区切られてます。<br>
先頭行にあると便利なフィールド名が今回はありません。<br>
※データが1行目から入っているカンマ区切りのCSVファイルです<br>
もう一つパラメータ ;Extended Properties='text;HDR=NO'を追加してみました。<br>

<pre>
  <Font Color='Green'>'接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する</Font>
  Con = &quot;Provider=Microsoft.Jet.OLEDB.4.0;&quot; &amp; _
                   &quot;Data Source=&quot; &amp; Server.MapPath(&quot;.&quot;) &amp; &quot;;&quot; &amp; _
                   &quot;Extended Properties=&quot;&quot;text;HDR=No;FMT=Delimited;&quot;&quot;;&quot;
  '↑MapPathに(&quot;.&quot;)を渡し、カレントディレクトリを渡す
</pre><br>
こんな感じで接続文字を作成<br>
SQL文でF1,F2などの自動で付けられるフィールド名を使ってみました。<br>
※詳細は下記の実行結果とソースを見てください<br>
<hr>
<%

  'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん
  Set rs=Server.CreateObject("ADODB.Recordset")

  '接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する
  Con = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source=" & Server.MapPath(".") & ";" & _
                   "Extended Properties=""text;HDR=No;FMT=Delimited;"";"
  '↑MapPathに(".")を渡し、カレントディレクトリを渡す

  'SQLのテーブル名には、ファイル名test090.csvを指定します。
  strSQL = "select * from test090.csv"
  strSQL = strSQL & " Where F3 = '日経BP出版センター'"
  '↑F3の出版社の項目を条件にしてデータをWhereで絞り込む

  Response.Write "使用する接続文字列は<br>"
  Response.Write "<STRONG><CODE>" & Con & "</CODE></STRONG><br>"
  Response.Write "発行するSQL文字列は<br>"
  Response.Write "<STRONG><CODE>" & strSQL & "</CODE></STRONG><hr>"

  '接続文字列、SQLを渡して、レコードセットを開く
  rs.Open strSQL, Con, 0  '0=adOpenForwardOnly

  'データの表示をテーブルで行う
  Response.Write "<TABLE Border='1'>"

  '見出しを(フィールド名を)そのまま書き込む
  Response.Write "<TR>"
  For Each fld_A In rs.Fields 'フィールドのアイテムに対してループ
     Response.Write "<TH>" & fld_A.Name & "</TH>" '←.Nameでフィールド名
  Next
  Response.Write "</TR>"

  'お約束のEOFまでループは(データが無くなるまでループ)、
  Do While rs.EOF = False   'レコードセットの.EOFがFalseの間
    Response.Write "<TR>"   '内容を表示する
    For Each fld_A In rs.Fields 'フィールドのアイテムに対してループ
       Response.Write "<TD>" & fld_A.Value & "</TD>" '←.Valueでフィールドの値
    Next
    Response.Write "</TR>"
    rs.MoveNext    '次のレコードに移動する
  Loop

  Response.Write "</TABLE></SAMP>"  'テーブルは終わりです

  '後始末
  rs.Close '開いていたレコードセットを閉じる
  Set rs = Nothing 'お行儀よくオブジェクトも開放しましょう

%>
<hr>
↓で元のヘッダー無しのCSVを確認してみてください。<br>
[<a Href="test090.csv" TARGET="_blank">ヘッダ無しの元ファイルtest090.csvを開く</a>]<br>
</body>
</html>

↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test090-2.asp実行する


↑コードの三流解説は、
三流君ASP:ADO CSVで先頭行にフィールド名が無い時
を見て、笑ってやってください。



ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)