プロが教える店舗&オフィスのセキュリティ対策術

Windows server 2003 + SQL server 2000の環境にあるDBがあります。
同じネットワーク上のWindows XP Pro + Access2000のPCからそのサーバのDBへデータをINSERTするのにはパススルークエリを使えという話になりました。
そのサーバへODBC接続の設定はできています。
パススルークエリの情報が乏しく、どのようにしたらよいのかちょっとわかりません。
どなたかご教授よろしくお願いいたします。

A 回答 (3件)

#1です。

やり方はわかったようですので、補足ですが、
パススルークエリは丸ごとSQL Serverにクエリを投げるので、
INSERT INTO (SQL Serverのテーブル) SELECT * FROM (Accessのテーブル)
みたいな使い方はできません。
基本的にはパラメータも渡すことができないので、実行の都度QueryDefのSQLを書き換えてExecuteするような使い方になるかと思います。

今回は1レコードだけということなので、特に問題はないと思いますが、複数レコードをINSERTするのだったら、
INSERT INTO TABLE VALUES ('A','B','C');
INSERT INTO TABLE VALUES ('D','E','F');
INSERT INTO TABLE VALUES ('G','H','I');

と並べるよりは
INSERT INTO TABLE
SELECT 'A','B','C'
UNION ALL SELECT 'D','E','F'
UNION ALL SELECT 'G','H','I'
とやると1ステートメントでINSERTできるので少し速いはずです。
    • good
    • 0

本当にパススルークエリが使えるのか疑問なのでいくつか確認。



INSERTというのはどこから(どこへ…はSQLServerなんですよね)?
例)
・Access2000のフォームに入っているものを
・Access2000のmdb上のテーブルから

それと、一度にInsertするのはなんレコード?

この回答への補足

どこから:同じネットワーク上にあるWindowsXP PC + Access2000のフォームに入力した1レコードを新規で追加。
どこへ:SQL Server

以上、よろしくお願いします。

補足日時:2008/09/12 10:55
    • good
    • 0

この説明がわかりやすいのではないですか?


INSERTでも同様にできるはずです。
http://www.atmarkit.co.jp/fwin2k/win2ktips/347db …

この回答への補足

ありがとうございます。
また、こちらでも「Access開発実践ノウハウ」というパススルークエリについて詳しく書いている本を見つけました。

補足日時:2008/09/12 11:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す