VB6でSQL Server2005をADOでアクセスしていますが、基本的なことですが、SELECT文の場合はrs.closeしてもエラーになりませんが、INSERT,UPDATE,DELETEの場合は、rs.closeとすると、
実行時エラー3704
オブジェクトが閉じている場合は、操作は許可されません。
というエラーメッセージが表示されます。
SQLは以下のように実行しています。
Call rs.Open(cobSQL.Text, cn, adLockOptimistic)
VB6でSQL SERVER2005(もしくは2000)でデータベースアプリを作成するのに参考になる良書などご存知でしたら教えてください。
また、VB6でADOは、ネイティブにSQL Server2005にアクセスできるのでしょうか?まだADOやデータベースの概念が良くわかっていないため、質問自体がおかしいかもしれませんが、VB6で高速にSQL SERVER 2005で処理させたいのが私の現時点での目標です。
No.1ベストアンサー
- 回答日時:
更新系(UPDATE、INSERT、DELETE等)のSQLでは、
レコードセットは使用してはいけません。
レコードセットを使用するのは、参照のみです。
更新系は、コネクションオブジェクトのExcuteメソッドを使用します。
つまり、レコードセットは、開く必要はなく、閉じる必要もありません。
(例)
Cn.Execute "insert into テーブル名 (XX1,XX2,XX3)values(ZZ2,ZZ2,ZZ3)
ちなみに、VB6とSQLサーバーの動作イメージとしては、
以下1、2を参考程度に。
1参照の場合(往復)
(1)VB6 → SQL文投げる → SQLサーバー
(2)VB6 ← レコード取得 ← SQLサーバー
2更新系の場合(片道)
(1)VB6 → SQL文投げる → SQLサーバー(更新)
参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
No.2
- 回答日時:
ANo.1の回答で正しいと思います。
参照とは、SELECT文ですね。
良書ですが、VBのデータベースに関する書籍で、良いと思ったものを、見たことがありません。(あくまでも、データベースの書籍の話です)が。
書籍に載っているコードと、
今まで私が、実際の業務で使用されたコードでは、かけ離れているのが現状です。
PGになった7年前から、業務で使える本がないのだろうと、
毎日疑問に思っていました。
スキルを磨くなら、現場にあるコードを解析するのが、
最も早いのが現状です。
そして、私は、自宅のPCで、データベースアプリを作って身に付けました。
現在のVBのバージョンは2005です。
VB6の書籍は、大型書店でも、少ないので、インターネットで、
探すほか、ないでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
エクセルのVBAの標準モジュール...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
VBAからPDFファイルにパスワー...
-
エクセルマクロエラー「'Cells'...
-
テキストボックス中の文字列の...
-
VBAで作成するメール(開封確認...
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
PowerPointVBAでスライドマスタ...
-
VBAについてです。 初心者です...
-
[C#]static void 関数内でthis
-
ローカル変数を戻り値に使うと...
-
VBA:オートシェイプの線の長...
-
[VBA]CDOメッセージ送信エラー
-
ある文字列が全て数字であるか...
-
【VB】【エクセル操作】 SaveAs...
-
UserForm1.Showでエラーになり...
-
AccessVBAで「dim dbs as datab...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
PowerPointVBAでスライドマスタ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ある文字列が全て数字であるか...
-
VBAについてです。 初心者です...
-
VBScriptでファイルの日時順(降...
-
Excelでフィルタをかけると警告...
-
VBAからPDFファイルにパスワー...
-
VBで引数にDictionaryオブジェ...
-
このように書くべきですか? { ...
-
EXCEL VBA オートシェイプナン...
-
テキストボックス中の文字列の...
-
エクセルVBAでcode128のバー...
-
[VBA]CDOメッセージ送信エラー
-
オブジェクトが見つかりません
おすすめ情報