PCとリモートPCのSQL-SERVERとで通信するには?

解決


コーヒー飲みすぎ  2005-08-19 04:58:07  No: 91580

PCからリモートのPCにあるSQL-SERVERを利用するプログラムを作りたいと思ったのですが、
この場合通信手段としては、Winsockを使えばいいのでしょうか??
DBのような大容量のデータを送るのにGetDataなどを使って受信するというのは非常に非効率的な感じがするのですが、
Winsockを使ってやるのは、玄人の皆さまから見て適切なものであるかどうか教えていただきたく立てました、よろしくお願いします。
(VB6.0、SQL-SERVER7.0を使っております)


いな  2005-08-19 05:31:27  No: 91581

ADOではダメなの?


コーヒー飲みすぎ  2005-08-19 06:25:32  No: 91582

サーバー側はDB−ADOでやろうと思っているのですが、
クライアントとサーバーの間の通信がWinsockで一気に送れるものかどうか、と思っております。
Winsockで画像や長い文字の送信なども可能でしょうか?


Geo=TK3  2005-08-19 06:34:54  No: 91583

>Winsockで画像や長い文字の送信なども可能でしょうか?

  可能だと思います。
  ...が、それ以前にクライアント PC とリモート PC 上の SQLServer を
直接 ADO で接続する訳にはいかないんでしょうか?
  いなさんもそういう事を聞いているんだと思いますが...

# DB から大容量のデータを送るのと、サーバから画像やら長い
# 文字列を送るとでそれほど通信データ量が変わるとも思えませ
# んし。


いな  2005-08-19 06:50:00  No: 91584

>いなさんもそういう事を聞いているんだと思いますが...

Geo=TK3 さん フォローありがとうございます。
そうです、そうゆうことを聞きたかったのです。

>通信データ量が変わるとも...(略

結局、UDPだのTCP/IPだのSNOOPだののプロトコルを経由しているので
心配ならば実際に、Etherealなどで、
通信データの中身を確認...って話題がそれるからここまで。

>コーヒー飲みすぎ 2005/08/18(木) 21:25:32
サーバー側はDB−ADOでやろうと思っているのですが、
クライアントとサーバーの間の通信がWinsockで一気に送れるものかどうか、と思っております。

>Winsockで画像や長い文字の送信なども可能でしょうか?
送れると思います。
が気になるのは実際にファイルにした時
どのくらいのファイルサイズのものを送ろうとしていますか?


シロクロ  2005-08-19 20:14:36  No: 91585

コーヒー飲みすぎ さん 質問の内容について確認させて下さい。

①「リモートのPC」とは、同一LAN上のPCなのでしょうか、
   それともRASで接続されているPCなのでしょうか?
②「通信手段」とありますが、これはDBに格納されているデータを
   SQL文を発行して取得しようとしているのか、それともDBのバックアップを
   目的としているのでしょうか?
③「画像や長い文字の送信」とはDBに格納されているデータなのでしょうか?
   それとも画像や長い文字が入ったjpegやテキストファイルのこと
   なのでしょうか?


ガッ  2005-08-19 21:19:18  No: 91586

DBは扱ったことがないので、全面的に間違っているかもしれませんが、
少し聞いてみたいことを思い付いたので聞いてみます。

作りたいものはどっち?

("-"は通信路)
A  [PC1]-[DBの何か]-[ここ]---TCPとか---[ここ]-[DBの何か]-[PC2]
    →DBと密接に関係する中間のインタフェイス

B  [PC1]-[DBの何か]             [DBの何か]-[PC2]
      └------[ここ]---TCPとか---[ここ]------┘
    →DBとは関係のないインタフェイス

Aなら面倒です。Bなら簡単にできます。
※ずれて見づらい…かな


ひろ  2005-08-19 22:09:49  No: 91587

リモートとローカルの間の通信経路がどうなっているか、また、リモートのPCへのアクセスをどのように制限するのかによりますね。

いっそのこと3階層のアプリケーションにして、

ブラウザ(IE等)
  ↓↑
アプリケーションサーバ(IIS上のASP.NET等)
  ↓↑
データベース(SQL Server等)

という手もあり得ますね。


コーヒー飲みすぎ  2005-08-22 20:06:25  No: 91588

いなさん
Geo=TK3さん

>  ...が、それ以前にクライアント PC とリモート PC 上の SQLServer を
>直接 ADO で接続する訳にはいかないんでしょうか?
で、できるんですか!?
不勉強ですみません。そちらの方が簡単になりそうなので、ちょっとやってみます。

>が気になるのは実際にファイルにした時
>どのくらいのファイルサイズのものを送ろうとしていますか?
どのくらいと決めてはいないのですけど、1Mくらいとりあえず送れればと考えています。

シロクロさん
>①「リモートのPC」とは、同一LAN上のPCなのでしょうか、
>  それともRASで接続されているPCなのでしょうか?
とりあえずは、LAN上でやってみようと考えています。

>②「通信手段」とありますが、これはDBに格納されているデータを
>   SQL文を発行して取得しようとしているのか、それともDBのバックアップを
>   目的としているのでしょうか?
SQL分によってデータを得たいと考えています。

>③「画像や長い文字の送信」とはDBに格納されているデータなのでしょうか?
>   それとも画像や長い文字が入ったjpegやテキストファイルのこと
>   なのでしょうか?
DBに格納されているデータを想定しています。

ガッさん
>作りたいものはどっち?
当初はBでやろうかと考えていたのですが...

ひろさん
そうですね、IIS以外の方法を試してみたくて、今回別方法を試みている最中です(汗

返信が遅くなってすみません。いなさん、Geo=TK3さんに教えていただいた方法でちょっとチャレンジしてみようと思います。


シロクロ  2005-08-23 20:05:08  No: 91589

VB6、SQLサーバという一般的な組み合わせであり、
かつ、DBに格納されているデータを取得するというのであれば、
単純にADOで十分だと思います。
レスポンを上げることを目的にADOなどと同じような
DBとアプリ(VB6)をつなぐためのミドルウェアを作るというのであれば
実際にADOで実装してから検証してみてからでもよいと思います。
(独自で作るとなると相当の知識と工数がかかります。
 また、後々の保守をどうするのかというような問題も発生します)


いな  2005-08-24 06:37:58  No: 91590

>返信が遅くなってすみません。いなさん、Geo=TK3さんに教えていただいた方法でちょっとチャレンジしてみようと思います。

ファイルのDBへの書き込み、抽出の仕方などは、
BLOB型もしくはLongRow型、SQL ServerなどでWeb検索すると、
サンプルが見つかるかと。


コーヒー飲みすぎ  2005-08-28 01:43:43  No: 91591

シロクロ さん
ADOはDBとアプリケーションをつなぐだけのものと考えていたので、誤解してました。

いなさん
>ファイルのDBへの書き込み、抽出の仕方などは、
>BLOB型もしくはLongRow型、SQL ServerなどでWeb検索すると

いなさん、なんどもありがとうございます。聞いたことのない型ですが、調べてやってみます、ありがとうございます  m(__)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加