Near Monologue

気ままに独り言をつぶやき中です。

スポンサーサイト

一定期間更新がないため広告を表示しています

- | permalink | - | -
<< SQL Server+ASPメモ2 | main | アールグレイ・ダージリン >>

SQLServer+ASPメモ3(しかもかなり基礎)

http://nearmonologue.jugem.jp/?eid=73の続きです。

さて、なぜ出来ないのか?を見極める為に簡単なテーブルおよび簡単なコードを作成しました。

テーブル:test
ID | LotNo
1 | 10
2 | 5
3 | 7
4 | 1
5 | 4


コード
SQL_String="SELECT ID, LotNo from test order by ID"

response.write(SQL_String)
' コネクションオブジェクトの生成
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.ConnectionString="PROVIDER=SQLOLEDB;Server=***;UID=***;
PWD=***;DATABASE=***"
objCon.Open

' レコードセットオブジェクトの生成
set rsZa=server.createobject("adodb.recordset")
rsZa.open SQL_String, objCon, 1, 3

k=1
if not rsZa.EOF and not rsZa.BOF then
 rsZa.movefirst
 Do While Not rsZa.EOF
  rsZa("LotNo")=k
  rsZa.Update
  k=k+1
  rsZa.movenext
 Loop
 rsZa.movefirst
end if

rsZa.close
objCon.Close


まず青いところだけでコーディングしましたが、Connectionオブジェクトを作成してDB接続したほうがいいのでは?と言われて修正。

さて、これでも動きませんでした。悲しい
なんと理由は主キーを設定してなかったからなのです。
いくらEnterpriseManager使うの初めてとはいえ、主キーを忘れちゃだめデスヨネ。。。
主キーを設定したら動くようになりました。

■カーソルとロックタイプの調査
webをぐぐっていてわからなかったのが、カーソルとロックタイプの調査方法。
rsZa.open SQL_String,objCon 1, 3
こうやって宣言してもサーバの設定によってはこのとおりにならないことがあるんだって。
ではどうなったのかを調べるには?

Response.Write (rsZa.CursorType)
Response.Write (rsZa.LockType)
Response.Write (rsZa.CursorLocation)


これで値を表示してみると実際に何が設定されたのかわかりました。

■ロックタイプとカーソルタイプの定数
よくサイトで数字ではなくて文字でセットしてるんだけど、私がやっているところでは文字にすると定義されていないと怒られてしまいました。
なぜ?

定数を使うには、ADOVBS.INC ファイルをするか、
global.asa で 宣言をしておけばよいそうです。


■更新可能クエリかどうでないかの判別方法
どうやってやるかというとこうするそうです。

rsZa.Supports(adUpdate) がTRUEなら更新可能、FALSEなら更新不可能

adUpdateを厳密に言うと&H1008000
だそうです。
だからadUpdateの代わりにrsZa.Supports(&H1008000)でももちろんOK。


----
プログラム関係の本は買えども買えどもこれでいいと思えるものがありませんね。
同じ言語の本を何冊も何冊も。
基礎を買っても最後の何ページかしか見なかった事もあるし。
コラムしか見なかった事も(^^;;
なので最近はよっぽどのコトがないと本を買っていません。
だから、本に載ってるとんでもなく基礎の部分がわからない(^^;;;
今回は本当に勉強になりました。
丁寧に教えてくださった方に感謝。
次は同じ間違いをしないように。
プログラマネタ | permalink | comments(4) | trackbacks(0)

スポンサーサイト

- | permalink | - | -

この記事に対するコメント

はじめまして。
迷える子羊(?)です。

ASPのプログラムを作成しています。
「現在の Recordset は更新をサポートしていません。プロバイダか、選択されたロックタイプの限界の可能性があります。」のエラー調査をしてまして、蒼井 由希乃さんのおかげでエラーが無事解決しました。
ありがとうごさいます。

お礼の一言を言いたくてコメントしました。

お邪魔しましたm(_ _)m
迷える子羊(?) | 2006/05/26 3:39 PM
いらっしゃいませ。
お役に立てて良かったです(^_^)
由希乃 | 2006/05/26 5:17 PM
こんばんわ。
サーバーH/W更新で、Windows2000からWindows2003環境に切り替えたら、この状況になりました。
主キーをセットしたら元通りに動くことが出来て大変助かりました。
ありがとうございました。

SQLサーバソフト自体は変えていないのですがたぶんMDACドライバーの差異だと思われます。
数寄屋橋 | 2008/01/11 7:18 PM
いらっしゃいませ。
MDACドライバーですか、そういうこともあるんですね。
勉強になりました♪
由希乃 | 2008/01/15 2:34 PM
コメントする









この記事のトラックバックURL
http://nearmonologue.jugem.jp/trackback/74
この記事に対するトラックバック
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>