Classic ASPテストページです。
情報が古いので参考程度に読んだりテストしてみてください。
共有サーバーなので、処理に時間がかかるとタイムアウトやアクセスが集中すると落ちている時がありますがご勘弁を・・・

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

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

ADOでReadOnly=0と.AddNewを使いCSVファイルにデータ追加

test091-1.asp
ASPからADOを使用してテキストファイル(*.csv)に接続を行う
ファイル名はtest091.csvで、データは,カンマで区切られてます。
FID,書き込み時刻,IP情報,Reffer
の4つの項目をCSVで管理してみます。
大きな流れは、このASP(test091-1.asp)が実行されたら、
最終行にカーソルを移動、.MovelastしてFID+1の次の番号を取得。 IPアドレスの頭10桁とReferrer(どこからきたか)を取り出し保存します。


使用する接続文字列は
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\users\ken3_org\Cgi-bin\test;ReadOnly=0;
発行するSQL文字列は
select * from test091.csv
rs.MoveLastで取得したFIDは1529です+1します
次は、開いたレコードセットに対して.AddNew
フィールドにアクセスする(データセットする)
.Updateで更新(レコード確定)
54.198.210.67←アナタのIP
test091.csv - select top 10 * from test091.csv Order By FID DESC
FID書き込み時刻IP情報Reffer
15302017/11/18 19:25:19ADDR54.198.210
15292017/11/18 8:52:32ADDR207.46.13.
15282017/11/18 1:25:59ADDR66.249.79.
15272017/11/17 1:02:40ADDR40.77.167.
15262017/11/16 18:59:29ADDR54.86.160.
15252017/11/16 18:59:26ADDR202.246.25http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwjlyKTl6sLXAhUKXLwKHT5MB9sQFggsMAE&url=http%3A%2F%2Fwww.ken3.org%2Fcgi-bin%2Ftest%2Ftest091-1.asp&usg=AOvVaw0BfhOTUrb9VL6vGHG2-Kx7
15242017/11/16 16:43:32ADDR194.187.17
15232017/11/16 9:25:23ADDR61.127.227http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwiYkLzr58HXAhUExrwKHRWvBP8QFgguMAE&url=http%3A%2F%2Fwww.ken3.org%2Fcgi-bin%2Ftest%2Ftest091-1.asp&usg=AOvVaw0BfhOTUrb9VL6vGHG2-Kx7
15222017/11/15 16:59:22ADDR52.27.2.86
15212017/11/15 16:56:32ADDR34.238.171

[再度テストでcsvへデータを追加する(再実行)] [ 操作した結果のCSV test091.csvを確認(開く)]


ReadOnly=0を使用したサンプル(ソースの紹介)

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

ReadOnly=0 を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードはReadOnly=0 です。 <%@LANGUAGE=VBScript%> <% Response.CacheControl = "no-cache" %> <% Response.AddHeader "Pragma", "no-cache" %> <% Response.Expires = -1 %> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>ADOでReadOnly=0と.AddNewを使いCSVファイルにデータ追加</title> </head> <body> <h1>ADOでReadOnly=0と.AddNewを使いCSVファイルにデータ追加</h1> test091-1.asp<br> ASPからADOを使用してテキストファイル(*.csv)に接続を行う<br> ファイル名はtest091.csvで、データは,カンマで区切られてます。<br> FID,書き込み時刻,IP情報,Reffer<br> の4つの項目をCSVで管理してみます。<br> 大きな流れは、このASP(test091-1.asp)が実行されたら、<br> 最終行にカーソルを移動、.MovelastしてFID+1の次の番号を取得。 IPアドレスの頭10桁とReferrer(どこからきたか)を取り出し保存します。<br> <br> <hr> <% '---- CursorTypeEnum Values ---- Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 '---- LockTypeEnum Values ---- Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 '---- CursorLocationEnum Values ---- Const adUseServer = 2 Const adUseClient = 3 '※接続情報の作成 ドライバーの指定と、DBQには、パスのみを指定する Con = "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" _ & Server.MapPath(".") & ";" _ & "ReadOnly=0;" 'SQLのテーブル名には、ファイル名を指定します(test091.csvを指定) strSQL = "select * from test091.csv" Response.Write "使用する接続文字列は<br>" Response.Write "<STRONG><CODE>" & Con & "</CODE></STRONG><br>" Response.Write "発行するSQL文字列は<br>" Response.Write "<STRONG><CODE>" & strSQL & "</CODE></STRONG><hr>" 'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん Set rs=Server.CreateObject("ADODB.Recordset") rs.CursorLocation = adUseServer 'カーソルはサーバーの指定 '接続文字列、SQLを渡して、レコードセットを開く rs.Open strSQL, Con, adOpenDynamic, adLockOptimistic '最終のデータを取得する rs.MoveLast 'レコードを最終行へ移動 NEXT_NO = Cint(rs.Fields("FID").Value) + 1 '次の番号を+1して計算する Response.Write "rs.MoveLastで取得したFIDは<b>" Response.Write Cint(rs.Fields("FID").Value) & "</b>です+1します<br>" 'データを追加する Response.Write "次は、開いたレコードセットに対して.AddNew<br>" rs.AddNew Response.Write "フィールドにアクセスする(データセットする)<br>" '↓フィールド名でアクセス rs.Fields("書き込み時刻").Value = Now() rs.Fields("FID").Value = NEXT_NO '次の番号をセットする '↓番号でフィールドにアクセスも出来るよ rs.Fields(2).Value = "ADDR" & Left(Request.ServerVariables("REMOTE_ADDR"), 10) rs.Fields(3).Value = Request.ServerVariables("HTTP_REFERER") Response.Write ".Updateで更新(レコード確定)<br>" rs.Update rs.Close 'クローズして確定する '再度レコードセットを作成する(表示用) 'top10で10件のデータとする FIDを降順にする そんなSQLを作成してみた strSQL = "select top 10 * from test091.csv Order By FID DESC" rs.Open strSQL, Con, adOpenForwardOnly '読み込みだけなのでForwardOnly '先頭行へデータを移動する(無くてもよさそうですが) rs.MoveFirst 'データの表示をテーブルで行う Response.Write Request.ServerVariables("REMOTE_ADDR") & "←アナタのIP<br>" Response.Write "test091.csv - " & strSQL & "<br><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="test091-1.asp">再度テストでcsvへデータを追加する(再実行)</a>] [<a Href="test091.csv" TARGET="_blank"> 操作した結果のCSV test091.csvを確認(開く)</a>]<br> </body> </html>

広告

リンク広告
  1. --[恋声 ボイスチェンジ フリーソフト]
  2. --[【ガチャ】モンスト 3500万人記念!!オーブ0ガチャ]
  3. --[Access コンボボックスを使ってみた]
  4. --[ Windows7 OSのフルバックアップ システムイメージバックアップ]

Googleで関連項目を検索する

[キーワード:ReadOnly=0] と サンプル|解説|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/11/18 19:25:19です。