三流君(TOP) /ASPで遊ぶ /ASP記事一覧を見る

分類: [Form関係] /DB系ADOを使い( [Mdb接続] [CSV接続] [Excel接続]) /[ASPでTextFileを操作] /[VBScript関数ほか]

ADOでCSVファイルと接続、Count関数で出版社名略称を集計してみた

test080-3.asp
ADOでCSVファイルと接続、Count関数で出版社名略称で個数を集計してみた
CSVに対してADO接続で、Gorup Byが使えることを確認してみました。

ファイル名はtest080.csvで、データは,カンマで区切られてます。
フィールドのイメージ
ISBN,書名,出版社名略称,価格,発売日
4-8399-0986-5,CPUの創りかた,毎コミ,2800,2003/9/30
4-8399-0997-0,速効!図解 ホームページ・ビルダー7,毎コミ,1280,2003/3/13
4-7980-0455-3,写真・イラスト入りはがきをつくる本,秀和システム,1280,2003/1/30
4-89369-974-1,VBAによるArcGISプログラミングガイド,BNN新社,2500,2003/9/26
4-7561-4198-6,プロジェクトマネジメント 実践の極意,アスキー,3200,2002/12/2
   ・
下記のようなSQL文と接続文字列でADOのレコードセットを作成してみました
  'SQLのテーブル名には、ファイル名を指定します。
  'Group By 出版社名略称でグループ化して冊数を数えてみました
  strSQL = "select 出版社名略称, Count(*) AS 冊数 from test080.csv"
  strSQL = strSQL & " Group By 出版社名略称"
'接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する
Con = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
      Server.MapPath(".") & ";"
'↑MapPathに(".")を渡し、カレントディレクトリを渡す

こんな感じで作成してみました。(詳細は下のほうにあるソースを見てください)
使用する接続文字列は
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\users\ken3_org\Cgi-bin\test;
発行するSQL文字列は
select 出版社名略称, Count(*) AS 冊数 from test080.csv Group By 出版社名略称
出版社名略称冊数
BNN新社2
FOM出版3
九天社1
技術評論社7
実教出版1
アスキー2
インプレス1
エーアイ出版1
ソフトバンク1
秀和システム1
毎コミ3
翔泳社2
日経BP出版センター2
ラトルズ1

[元ファイルtest080.csvを開く]


Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=を使用したサンプル(ソースの紹介)

詳細解説は[http:/asp/backno/asp080.html]を見てください
下記、/cgi-bin/test/test080-3.aspのソース(中身)です

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ= を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードはDriver={Microsoft Text Driver (*.txt; *.csv)};DBQ= です。 <%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>ADOでCSVファイルと接続、Count関数で出版社名略称を集計してみた</title> </head> <body> <h1>ADOでCSVファイルと接続、Count関数で出版社名略称を集計してみた</h1> test080-3.asp<br> ADOでCSVファイルと接続、Count関数で出版社名略称で個数を集計してみた<br> <em>CSVに対してADO接続で、Gorup Byが使えることを確認してみました。</em><br> <pre><code> ファイル名はtest080.csvで、データは,カンマで区切られてます。 フィールドのイメージ ISBN,書名,出版社名略称,価格,発売日 4-8399-0986-5,CPUの創りかた,毎コミ,2800,2003/9/30 4-8399-0997-0,速効!図解 ホームページ・ビルダー7,毎コミ,1280,2003/3/13 4-7980-0455-3,写真・イラスト入りはがきをつくる本,秀和システム,1280,2003/1/30 4-89369-974-1,VBAによるArcGISプログラミングガイド,BNN新社,2500,2003/9/26 4-7561-4198-6,プロジェクトマネジメント 実践の極意,アスキー,3200,2002/12/2 ・ 下記のようなSQL文と接続文字列でADOのレコードセットを作成してみました 'SQLのテーブル名には、ファイル名を指定します。 'Group By 出版社名略称でグループ化して冊数を数えてみました strSQL = &quot;select 出版社名略称, Count(*) AS 冊数 from test080.csv&quot; strSQL = strSQL & &quot; Group By 出版社名略称&quot; <Font Color='Green'>'接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する</Font> Con = &quot;Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=&quot; &amp; _ Server.MapPath(&quot;.&quot;) &amp; &quot;;&quot; '↑MapPathに(&quot;.&quot;)を渡し、カレントディレクトリを渡す </pre></code><br> こんな感じで作成してみました。(詳細は下のほうにあるソースを見てください) <hr> <% 'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん Set rs=Server.CreateObject("ADODB.Recordset") 'SQLのテーブル名には、ファイル名を指定します。 'Group By 出版社名略称でグループ化して冊数を数えてみました strSQL = "select 出版社名略称, Count(*) AS 冊数 from test080.csv" strSQL = strSQL & " Group By 出版社名略称" '接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する Con = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _ Server.MapPath(".") & ";" '↑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> [<a Href="test080.csv" TARGET="_blank">元ファイルtest080.csvを開く</a>]<br> </body> </html>

広告

リンク広告
  1. --[Windows 自動ログイン control userpasswords2 や netplwiz]
  2. --[ Windows10 OSのフルバックアップ システムイメージバックアップ]

Googleで関連項目を検索する

[キーワード:Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=] と サンプル|解説|Dim|Set で検索
↓で検索して他のページも確認してみてください。

Google

あれ?私のページが検索に載ってない(笑)一度お試しを(私のページに、また戻ってきてね(爆))

実行サンプルと解説ページのリンク

ASPでCSVと接続して、SQL文等を発行するサンプル


ASP系、ADO使用、CSV接続、SQL発行、メルマガ解説リンク

[No.80 Microsoft Text Driver (*.txt; *.csv) で接続してみた]
[No.90 ADO CSVで先頭行にフィールド名が無い時]
[No.91 ADO CSVでReadOnly=0と.AddNewを使いデータ追加]
[No.101 ADO CSV接続 勝手に型を決めんなよ・・・]
[No.102 ADO CSV接続 schema.iniを使い型を設定してみた]


[Topへ戻る] −−>[ASP系のTOPへ戻る] −−>[記事一覧を見る]

リンク 三流君 ASP系 の 解説を項目ごとにまとめてみました

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く



VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。

その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[永遠の下書き日記?]← 恥ずかしいのであまり載せてないけど・・・
[ひとりで掲示板?] ←一人で?掲示板?ぉぃぉぃ


[Topへ戻る] −−>[ASP系のTOPへ戻る] −−>[記事一覧を見る]

現在時刻は、2017/04/24 4:48:21です。