ASPにおけるRecordSet OpenとConnection.Executeのいくつかの違いと詳細を共有する。


rs.open sql,conn:sqlがdeleteであれば、udate、insertは閉じた記録集に戻ります。使用中にrs.closeに来ないでください。ファイルの最後にrs.closeを書きます。
中間は複数の記録セットのRS 1.open sql 1、connが来て、最後のブロックは記録セットを閉じます。RS.close 1.close
conn.execute(sql)もしsqlがdeleteであれば、udate、insertは閉じた記録集に戻ります。使用中にrs.closeに来ないでください。ファイルの最後にrs.closeを書きます。
中間は、複数の記録セットのRS 1.open sql 1、connが来ることができ、最後のブロックは記録セットを閉じる:RS.close 1.close.
もしsqlがudateであれば、insert、deleteはconn.executeを使ってもいいです。括弧conn.execute sqlはいらないです。
sqlがselect文であれば、set rs=conn.execute(sql)括弧を使うべきです。省略できません。これはvbscriptの特性のため、戻り値を持っています。
の呼び出しは括弧を入れなければなりません。戻り値のない呼び出しは括弧を外してもいいです。
注意:rs.open sqlであろうと、connであろうと、connであろうと、connであろうと、execute[ここのSQLはdelete、udate、insert]を実行すると、クローズした記録集に戻ります。
つまり、sqlが挿入、更新、削除された文であれば、set rs=conn.executeのRSは意味がないということです。
1.co nn.execute

sql="select * from admin where username='xiaozhu'"
set rs=conn.execute(sql)
            
             
conn.close
set conn=nothing
2.rs.open

set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='xiaozhu'"
rs.open sql,conn,1,1
          ,           
           
rs.close
set rs=nothing
conn.close
set conn=nothing
3.command.execute

sql="select * from admin where username='xiaozhu'"
set rs=command.execute(sql)
*********************************************************************
1.
set rs=conn.execute(select文なら)得られたrs.recordcount=-1
rs.open sql,conn(sqlはselect文)で得られたrs.recordcountは正常な記録数です。
2.
rs.openはデータベースのconn.executeを開くのです。SQL命令を実行するのです。
set rs=conn.execute(insert,udate,delete)は、クローズした記録集を返します。
set rs=conn.executeは、閉じていないレコードセットを返します。
3.
CONN.EXECUTE(SQL,Rows Affected,C)
パラメータの意味:
SQLの値は、SQL文、表名、格納プロセス名であっても良いし、データプロバイダが許容できる任意の文字列であっても良い。性能を高めるために、Cパラメータに適切な値を指定したほうがいいです。
オプションのパラメータRowsAffectedは、INSERT、UPDATEまたはDELETEクエリの実行後に影響される数を返します。これらのクエリは閉じられたRecordsetオブジェクトを返します。
一つのSELECTクエリは、RowsAffected値が−1であり、1行または複数行のコンテンツを有するオープンなRecordsetを返す。
4.
conn.execute sqlは、recordsetオブジェクトに戻らないときに使用するのに適しています。たとえば、以下のコードです。
sql=「delete from enewhere id=」&cstr(id)
conn.execute sql
recordsetオブジェクトに戻る必要がある場合は、次のコードを使用します。
sql=「select from enewhere id=」&cstr(id)
set rs=conn.execute(sql)
execute(sql)の括弧を外したら、「文が終わっていません」というエラーメッセージが表示されます。文法形式を見てみたら、2つのフォーマットがあります。
フォーマット1:Connectionオブジェクト名.Execute(SQL命令)。
フォーマット2:Connectionオブジェクト名.Execute(データテーブル名)。
s.open sql,conn
s.open sql,conn,1,1
s.open sql、conn、3、2
s.open sql,conn,3,3
上の文の後の数字については、どんな意味ですか?また、数字(RS.open sql、conn)を省略した場合、デフォルトはどれですか?  
答えはどこですか
RS.OPEN SQL、CONN、A、B
A:ADOPEFOREWARDOLY(=0)読み取り専用で、現在のデータレコードは下に移動するしかありません。
ADOPEKEYSET(=1)読み書きができ、現在のデータレコードは自由に移動できます。
ADOPEENDYNAMIC(=2)は読み書きができます。現在のデータレコードは自由に移動できます。新規記録が見られます。
ADOPESTATIC(=3)読み取り専用で、現在のデータレコードは自由に移動できます。
B:ADLOCKREADONLY(=1)デフォルトロックタイプで、記録集は読み取り専用で、記録を修正できません。
ADLOCK PESSIMISTIC(=2)は悲観的にロックし、記録を修正すると、データプロバイダは記録のロックを試み、記録の編集に成功するようにする。編集が開始されると、すぐに記録に鍵をかけます。
ADLOCK OPTTIMISTIC(=3)は、Updateで更新記録を提出するまで楽観的にロックします。
ADLOCK BATCHOPTIMISTIC(=4)ロットは楽観的にロックし、複数の記録を修正することができます。UpdateBatch方法を呼び出してから記録をロックします。
任意の記録を変更する必要がない場合は、読み取り専用のレコードセットを使用しなければならない。このように提供者はいかなる検査も行わない。一般的な使用については、楽観的なロックが最良の選択かもしれません。記録はしばらくロックされているので、データはこの期間に更新されます。これは資源の使用を減らす。
以上、ASPのRecordSet OpenとConnection.Executeのいくつかの違いと詳細を共有する記事について紹介します。これまでの記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。