OpenとConn.Executeの詳細と相違点と&H0001の説明。
1. Rs.Open SQL,Conn,A,B,C
2. Conn.Execute(SQL,RowsAffected,C)を実行します。
I.Conn.Execute(SQL,RowsAffected,C)を実行します。
パラメータの意味
SQLの値は、SQL文、テーブル名、プロシージャ名、またはデータプロバイダが受け入れることができる任意の文字列とすることができます。パフォーマンスを向上させるためには、Cパラメータに適切な値を指定するのが最適です。
オプションのパラメータ RowsAffected
1. Insert、Update、または Delete クエリが実行されると、RowsAffected は影響を受ける数を返し、これらのクエリは閉じた Recordset オブジェクトを返します。
2. SELECT クエリは、RowsAffected 値が -1 で、コンテンツが 1 行以上あるオープンなレコードセットを返します。
<%
Set Conn=OpenDatabase' (OpenDatabase function see: ASP with ACCESS and MSSQL database to establish connection method)
Conn.Execute "update Table1 set Col1='123'",RowsAffected,&H0001
Response.Write RowsAffected&" RowsAffected"
Conn.close
Set Conn=Nothing
%>
II.Rs.オープン SQL、Conn、A、B、C
Set Rs=Server.CreateObject ("adodb.RecordSet")
sql="xxxx"
Rs.Open Sql,Conn,1,1,&H0001
irs=rs.getrows(10)
&H0001
どういうことでしょうか?初めて見たとき、しばらく混乱しました。今はウェブ上にこれに関する情報がたくさんあります。ここで触れておくと、以下のパラメータ説明で指定されています。
パラメータ:カーソルタイプ
Const adOpenForwardOnly=0 read-only,default。カーソルは、レコードセット内のレコード間を前進することのみ許可されます。ページング、レコードセット、BookMarkはサポートされていません。
Const adOpenKeyset=1 読み取り専用,キーセットカーソル、現在のデータレコードを自由に移動でき、他のユーザーによるレコードへの変更はレコードセットに反映されますが、他のユーザーによるレコードの追加、削除はレコードセットに反映されません。ページング、レコードセット、ブックマーク対応
Const adOpenDynamic=2 読み書き、現在のデータレコードを自由に移動できる、動的カーソルは最も強力ですが、最もリソースを消費するものでもあります。ユーザーがレコードに加えた変更、レコードの追加や削除は、レコード・セットに反映されます。フル機能のブラウジングに対応(ACCESSでは未対応)。
Const adOpenStatic=3 静的カーソル、データのスナップショットだけで、ユーザーがレコードを変更したり、レコードを追加または削除しても、レコードセットに反映されません。前方または後方への移動に対応
Bパラメータ:ロックタイプ
Const adLockReadOnly=1 デフォルトでは、レコードセットは読み取り専用で、レコードは変更できません。
Const adLockPessimistic=2 '悲観的なロックで、レコードの編集が成功するように、編集されると即座にロックされます。最も安全な方法です。
Const dLockOptimistic=3 '更新されたレコードをコミットするためにUpdateメソッドを使用するまでレコードをロックし、それ以前の他の操作は現在のレコードに対して変更、挿入、削除などを行うことができる最適化ロック
Const dLockBatchOptimistic=4 '一括楽観ロック。複数のレコードを変更でき、UpdateBatchメソッドが呼ばれた後にのみレコードをロックします。
読み取り専用のレコードセットは、プロバイダがテストを行う必要がないように、レコードを変更する必要がないときに使用する必要があります。一般的な使用では、楽観的ロックがおそらく最良の選択肢でしょう。なぜなら、レコードはわずかな時間だけロックされ、その間にデータが更新されるからです。これにより、リソースの使用量を減らすことができます。
Cパラメータです。(SQL文の種類を指定)
Const ADCmdUnknown=&H0008 '不明、システムが判断する必要がある、遅い、デフォルト値
Const ADCmdText=&H0001 'SQLの一部が実行されます。
Const ADCmdTable=&H0002 'テーブルが操作されます。
Const ADCmdStoredProc=&H0004 'ストアドプロシージャの名前を操作します。
Const ADCmdFile= &H0100 'オブジェクトタイプに対応するファイル名
Const ADCmdTableDirect= &H0200 'は、行の内容を直接取得することができるテーブルの名前です。
III. Rs.OpenとConn.Executeの違いについて
Rs.Open SQL,Conn
sqlは、削除、更新、挿入されたレコードセットを返す場合、使用の過程でファイルの末尾にrs.closeに来て、rs.close真ん中を書くことができない複数のレコードセットrs1.open sql1、conn、閉じたレコードセットの最後の部分: rs.close rs1.close。
Conn.Execute(SQL)を実行します。
sqlは削除、更新、挿入された場合、それは閉鎖されたレコードセットを返します、使用の過程でファイルの最後にrs.closeを来ていない、途中でrs.closeを書くことができます複数のレコードセットrs1.open sql1、conn、レコードセットを終了する最後の作品:rs.close rs1.close.Close.Ifs sqlは削除、更新、挿入されます。
更新,挿入,削除のSQLであれば,Conn.Execute(sql)あるいは
sql が select 文の場合、Set Rs=Conn.Execute(sql) を使用し、括弧を省略してはいけません。
これは、vbの性質上、戻り値のある呼び出しは括弧で囲む必要があり、戻り値のない呼び出しは括弧なしでOKだからです。
1. Conn.Execute
sql="select * from admin where username='xiaozhu'"
Set Rs=Conn.Execute(sql)
'Automatically close the recordset after execution
'Finally, just close the connection and you're done
conn.close
Set conn=nothing
2. Rs.オープン
Set Rs=Server.CreateObject("Adodb.Recordset")
sql="select * from admin where username='xiaozhu'"
Rs.Open sql,Conn,1,1
'You can set some parameters yourself, i.e. locking and the way the cursor moves
'Finally, close the recordset and the connection
Rs.Close
Set Rs=nothing
Conn.Close
Set Conn=Nothing
3. コマンド実行
sql="select * from admin where username='xiaozhu'"
Set Rs=Command.Execute(sql)
1.
Set Rs=Conn.Execute("if it's a select statement") get rs.recordcount=-1
Rs.Open sql,conn("sql for select statement") rs.recordcount を通常のレコード数として取得します。
2.
Rs.Open はデータベースをオープンすること Conn.Execute は SQL コマンドを実行すること
Set Rs=Conn.Execute(insert,update,delete) 閉じたレコードセットを返す。
Set Rs=Conn.Execute(select) は閉じていないレコードセットを返します。
3.
Conn.Execute(SQL,RowsAffected,C)を実行します。
パラメータの意味
SQLの値には、SQL文、テーブル名、プロシージャ名、またはデータプロバイダが受け入れることのできる任意の文字列を指定することができます。パフォーマンスを向上させるためには、Cパラメータに適切な値を指定するのが最適です。
オプションのパラメータ RowsAffected は、INSERT、UPDATE、DELETE クエリのうち、実行後に影響を受けたクエリの回数を返します。これらのクエリは、クローズされたRecordsetオブジェクトを返します。
SELECT クエリは、RowsAffected 値を -1 にし、1 行以上のコンテンツを持つオープンな Recordset を返します。
4.
Conn.Execute sqlは、次のコードのように、レコードセット・オブジェクトを返す必要がない場合に適しています。
sql="delete from news where id="&cstr(id)
Conn.実行sql
レコードセット・オブジェクトを返す必要がある場合は、次のコードを使用してください。
sql="select from news where id="&cstr(id)
Set Rs=Conn.Execute(sql)
execute(sql)の括弧を外すと(つまり set rs = Conn.Execute sql)、"statement not completed" のようなエラーが表示されます。
書式1: 接続オブジェクト名.Execute (SQLコマンド)
書式2:接続オブジェクト名.Execute(データテーブル名)
Conn.Execute(sql)(0)はデータセットの最初のフィールドの値
Conn.Execute(sql)はレコードセットを返します。
Conn.Execute sqlはレコードセットを返しません。通常、戻り値のない挿入、更新、削除などに使用されます。
関連
-
Net coreのホットプラグ機構とアンインストールに関する問題点ヘルプガイド
-
ASPでよく使われる22のFSOファイル操作関数が整理されています。
-
asp 文字列連結 &, 複数の文字列の合計, 文字列スプライシングクラス
-
オンライン圧縮・解凍のためのASPコード
-
ASP動的インクルードファイル
-
aspで文字列を数値に変換する関数のまとめ
-
SELECT ドロップダウンメニューで VALUE と TEXT 値を同時に取得する ASP コード
-
ASP Baidu アクティブプッシュのコード例
-
ASPでのServer.HTMLEncodeの使用方法(カスタム関数あり)
-
SharePoint Server 2019の新機能をご紹介します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ファイルが存在するかどうかを判断するasp関数
-
ASPでimgタグのstyle属性を削除し、srcの正規関数だけを残す。
-
提案内容を改善するために、データベースを実行するaspプログラムの効率化
-
ASP RecordSet OpenとConnection.Executeのいくつかの違いと共有すべき詳細な内容
-
aspで仮想ディレクトリのルートパスを取得するコード
-
aspはプロジェクトの終了時刻を計算するためにWeekday関数を使用します。
-
asp は整数の mod を受け取り、小数点以下がある場合は自動的に 1 を加算します。
-
FluentValidationを使ったルール検証のためのNET Core
-
ASPでは、.NETのStringオブジェクトと同様に、文字部分に対してPadLeftとPadRightの関数が実装されています。
-
現在のフルパス(url)を取得するためのasp関数コード