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

schema.ini ファイルを使って CSV 接続 フィールドの型を指定

test102-1.asp
下記のテストファイルを用意して、
ASPからADOを使用して.csvに接続して、単純にデータを表示してみました。
※ファイル名はtest101.csvとtest102.csvで、データは,カンマで区切られてます。
日付,IP,URL,分数TEST,少数TEST,備考,予備
2004/12/25,192.168.0.1,ken3.org,1/20,1.25,備考の文字,1-2-3
2005-01-08,192.168.0.25,/asp/,1/3,5.10,日付の形式を少し変えた
2005/01/19 17:30,192.168.0.17,vba,2/7,5,時刻を付けた,04-05-06
↑ファイルの中身は同一ですが、下記の
schema.ini設定ファイルをtest102.csvでは、設定してみます
[test102.csv]
ColNameHeader=True
Format=CSVDelimited
Col1=日付 Char Width 99 
Col2=IP Char Width 99
Col3=URL Char Width 99
Col4=分数TEST Char Width 99
Col5=少数TEST Char Width 99
Col6=備考 Char Width 99
Col7=予備 Char Width 99
※test102.csvでは、全てテキスト型のサイズ99としてみました。
ADOでCSVの接続は、
'SQLのテーブル名には、ファイル名を指定します。
strSQL = "select * from test101.csv"
'接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する
Con = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
      Server.MapPath(".") & ";"
'↑MapPathに(".")を渡し、カレントディレクトリを渡す
こんな感じで普通に接続して、
Select * from test101.csv

Select * from test102.csv
でテストしてみました。

schema.ini で設定無しのtest101.csvの結果

使用する接続文字列は
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\users\ken3_org\Cgi-bin\test;
発行するSQL文字列は
select * from test101.csv
日付IPURL分数TEST少数TEST備考予備
2004/12/25192.168ken3.org1/201.25備考の文字2001/02/03
2005/01/08192.168/asp/1/35.1日付の形式を少し変えた
2005/01/19 17:30:00192.168vba2/75時刻を付けた2004/05/06

データ型が自動的に変換されてしまい、
日付に見えるデータ(04-05-06など)

小数点付きの数値に見えるデータ(192.168.0.1など)が変換されてます

schema.ini で設定有りのtest102.csvの結果

使用する接続文字列は
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\users\ken3_org\Cgi-bin\test;
発行するSQL文字列は
select * from test102.csv
日付IPURL分数TEST少数TEST備考予備
2004/12/25192.168.0.1ken3.org1/201.25備考の文字1-2-3
2005-01-08192.168.0.25/asp/1/35.10日付の形式を少し変えた
2005/01/19 17:30192.168.0.17vba2/75時刻を付けた04-05-06
↑こんな感じで、
schema.iniでフィールドの型を指定すると自動に変換されなくて
数値に見える文字データや日付関係で少しは使えるのかなぁ・・・

[設定ファイルschema.iniを開く]
[元ファイルtest101.csvを開く]
[元ファイルtest102.csvを開く]

参考URL: [[AC97]VBAから Schema.ini ファイルを作成する方法]


コーヒーブレイク たまには寄り道、休憩も(↓広告です):
広告:[Blogで商品紹介] ← 足跡から人気を判断?
[本日発売の商品] ← 発売日が当日の商品を紹介、、、するが効果が無いので → [先週発売の商品] ← を作成して、先走らないで、少し落ち着いてみます(笑)

schema.iniを使用したサンプル(ソースの紹介)

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

schema.ini を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードはschema.ini です。 <%@LANGUAGE=VBScript%> <html> <head> <title>schema.ini ファイルを使って CSV 接続 フィールドの型を指定</title> </head> <body> <h1>schema.ini ファイルを使って CSV 接続 フィールドの型を指定</h1> test102-1.asp<br> 下記のテストファイルを用意して、<br> ASPからADOを使用して.csvに接続して、単純にデータを表示してみました。<br> ※ファイル名はtest101.csvとtest102.csvで、データは,カンマで区切られてます。<br> <pre> 日付,IP,URL,分数TEST,少数TEST,備考,予備 2004/12/25,192.168.0.1,ken3.org,1/20,1.25,備考の文字,1-2-3 2005-01-08,192.168.0.25,/asp/,1/3,5.10,日付の形式を少し変えた 2005/01/19 17:30,192.168.0.17,vba,2/7,5,時刻を付けた,04-05-06 ↑ファイルの中身は同一ですが、下記の <strong>schema.ini</strong>設定ファイルをtest102.csvでは、設定してみます [test102.csv] ColNameHeader=True Format=CSVDelimited Col1=日付 Char Width 99 Col2=IP Char Width 99 Col3=URL Char Width 99 Col4=分数TEST Char Width 99 Col5=少数TEST Char Width 99 Col6=備考 Char Width 99 Col7=予備 Char Width 99 ※test102.csvでは、全てテキスト型のサイズ99としてみました。 <b>ADOでCSVの接続</b>は、 <Font Color='Green'>'SQLのテーブル名には、ファイル名を指定します。</Font> strSQL = &quot;select * from test101.csv&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> こんな感じで普通に接続して、<br> Select * from test101.csv<br> と<br> Select * from test102.csv<br> でテストしてみました。 <hr> <h2>schema.ini で設定無しのtest101.csvの結果</h2> <% Call CSVGET_TEST("test101.csv") %> <br> データ型が自動的に変換されてしまい、<br> 日付に見えるデータ(04-05-06など)<br> や<br> 小数点付きの数値に見えるデータ(192.168.0.1など)が変換されてます<br> <hr> <h2>schema.ini で設定有りのtest102.csvの結果</h2> <% Call CSVGET_TEST("test102.csv") %> ↑こんな感じで、<br> schema.iniでフィールドの型を指定すると自動に変換されなくて<br> 数値に見える文字データや日付関係で少しは使えるのかなぁ・・・<br> <hr> [<a Href="schema.ini" TARGET="_blank">設定ファイルschema.iniを開く</a>]<br> [<a Href="test101.csv" TARGET="_blank">元ファイルtest101.csvを開く</a>]<br> [<a Href="test102.csv" TARGET="_blank">元ファイルtest102.csvを開く</a>]<br> <br> 参考URL: [<a Href="http://support.microsoft.com/default.aspx?scid=kb;ja;155512&Product=accJPN" TARGET="_blank">[AC97]VBAから Schema.ini ファイルを作成する方法</a>]<br> <hr> <% Sub CSVGET_TEST(strFileName) 'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん Set rs=Server.CreateObject("ADODB.Recordset") '接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する Con = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _ Server.MapPath(".") & ";" '↑MapPathに(".")を渡し、カレントディレクトリを渡す 'SQLのテーブル名には、ファイル名を指定します。 strSQL = "select * from " & strFileName '受け取ったファイル名を追加する Response.Write "使用する接続文字列は<br>" Response.Write "<STRONG><CODE>" & Con & "</CODE></STRONG><br>" Response.Write "発行するSQL文字列は<br>" Response.Write "<STRONG><CODE>" & strSQL & "</CODE></STRONG><br>" '接続文字列、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>" 'テーブルは終わりです '後始末 rs.Close '開いていたレコードセットを閉じる Set rs = Nothing 'お行儀よくオブジェクトも開放しましょう End Sub %> </body> </html>

最近発売の雑誌を紹介する

今週発売の男性誌です。プログラミング以外にも興味を持って???
  1. カジカジ 2008年 06月号
  2. BEST CLUB (ベストクラブ) 2008年 06月号
  3. SpyMaster (スパイマスター) 東海版 2008年 06月号
  4. KING (キング) 2008年 06月号
  5. men's egg (メンズエッグ) 2008年 06月号
  6. Ollie (オーリー) 2008年 06月号
  7. BRUTUS (ブルータス) 2008年 6/1号
  8. Pen (ペン) 2008年 6/1号
  9. おとなの週末 2008年 06月号

ソフト開発の書籍を紹介します

  1. [4887186517]- Windowsの悪のマニュアルXP
  2. [4822207951]- ソフトウェア開発データ白書〈2005〉
  3. [4797323361]- アジャイルソフトウェア開発の奥義
  4. [4274064735]- CVSによるオープンソース開発
  5. [4534031092]- 図解でわかる ソフトウェア開発のすべて―構造化手法からオブジェクト指向まで
  6. [4764902834]- ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

Googleで関連項目を検索する

LANGUAGE=VBScript + [キーワード:schema.ini] Sub|Function プログラム|プログラミング
↓で検索するとプログラムの例 Sub/Function でまとまったHP

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を使い型を設定してみた]

三流解説とリンクページを紹介

ASP系の解説を項目ごとにまとめてみました

[ASP Form等を使用したデータのやり取り]
[ASP その他処理サンプル]
[ASP テキストファイル処理]
[ASP VBScript関数関係の説明]
[ASP ADOでMdbファイルを使う]
[ASP ADOでExcelと接続してみた]

その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[三流なプログラムコード]← 恥ずかしいのであまり載せてないけど・・・
[通販商品の足跡を紹介] ←通販商品などを紹介してます


現在時刻は、2008/05/17 14:38:27です。
[Topへ戻る] −−>[ASP系へ戻る] −−>[バックナンバーを見る]