- 締切済み
アクセステーブル、リンクとローカルで違いはある?
Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yorozu_ya
- ベストアンサー率54% (76/140)
ANo.2 の追加です。 > なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 参照のみであっても、DBに対して読み取りロックが掛かります。 読み取りロックですから、他の端末での読み取りは可能なのですが、 更新ロックは待たされます。(メインの業務に支障が出る。) 複雑なクエリなどで読み取りに時間が掛かるようであれば、 パススルークエリにして、「ロック無し」をイチイチ指定する必要があります。
- yorozu_ya
- ベストアンサー率54% (76/140)
> ローカルテーブルなら発行出来たのに、 > リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。 逆です。 パススルークエリなら簡単に出来ることが、 ローカルのクエリだと、複雑だとかなんだかんだとエラーが出ます。 > 理由は、DBにテスト用のゴミデータを追加したくないことと、 > セキュリティの関係で接続出来るマシンが限られるためです。 なんとかして、SQLServer(の無償版)をローカルマシンに入れましょう。 あと、リンクテーブルのパスワードですが、mdb ではなく mde にし、 プロパティの設定も適切にすれば、かなりな程度隠蔽できます。
- nicotinism
- ベストアンサー率70% (1019/1452)
リンクテーブルだとレコードセットのSeekメソッドが使えません。 パッと思いついたのはこれだけ・・。 リンクテーブルだとローカルPCに全てのレコードを持ってきて調べるので なんといってもレスポンスが落ちます。 一秒で現れた結果が数秒に伸びるかもしれません。タイムアウト発生? パススルー クエリも検討されては? たとえば http://office.microsoft.com/ja-jp/access-help/results.aspx?qu=%E3%83%91%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC&origin=HP001032260 また、リンクテーブルだとプロパティを見れば 接続文字列が丸見えになってしまってセキュリティ上 宜しくないのでは? Access2003は持っておりませんので杞憂かも知れません、これにて。