• 締切済み

Socket通信だけでSQL Serverにアクセス

一般的なC言語のソケット通信関数のみを使用して、SQL Serverに接続する方法を探しています。 今回使用するハードウェアは、Windows PCではなく、Ethernetの付いた小型の組み込み用CPUボード(CPUはARM7)なので、ODBCなど立派なデータベースサポート環境など全くありません。 この為、C言語を使ってソケット通信にて自力でSQLサーバーに接続しなければなりません。 しかし、私はC言語でのソケット通信プログラム作成能力はあっても、SQLサーバとのやり取りにつきましては、何一つ分からない状態です。 ネットでいろいろと検索しましても、1433ポートを使用するなど極めて断片的な情報は得られた物の、具体的に何をするのかが分かりませんでした。 そこで、Socket通信関数群だけを使用してSQLサーバーにアクセスする方法についてご存じの事がございましたら、是非ともご教示頂けませんでしょうか。 情報が書かれているWEBページとか、あるいは書物とか、あるいは具体的なソースコードなどなど... 何でも構いませんので、宜しくお願い致します。 ※具体的にどの様なSQL Serverを使用するのかは、現在客先にて調整中でまだ分かりません。  各種SQLサーバーに共通的な方法が存在するのでしょうか? それとも、SQLサーバーによって全て方法が異なるのでしょうか?

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

SQLServerはオープンソースではないので、どのような要求と応答が あるのかについて、開かれた資料が無いのでは? 答えてくれないと思いますがメーカに直接問い合わせるしかない ような気がします。それと、組み込みでデータベースアクセスと いうのは荷が重過ぎると思いますけどね。 私が担当するとしたら、DBサーバにODBCを組み込み、こちらに独自の サーバプログラムを置いて対処するくらいしか思いつきません。 例えば、SQLを発行して、結果を受け取ることを考えるとします。 (1)クライアント→独自サーバプログラム:SQLの要求  ここは自作プログラムなので、仕様は自由に決められます。 (2)独自サーバプログラム→SQLServerのサーバプログラム:SQLの要求  ここはODBCを使う方法で処理します。 (3)SQLServer→独自サーバプログラム:結果応答  ここもODBCを使う方法で処理します。 (4)クライアント→独自サーバプログラム:結果応答  ここも自作プログラムなので、仕様は自由に決められます。 こういうのもダメなら、オープンソースのDBシステムにしてみては?

bcb_manic
質問者

お礼

nda23様  早速のご回答に感謝申し上げます!! 全くおっしゃる通りで、私も客先と上司に組み込み機器のやる仕事じゃないと言ったのですが、 「そんな泣き言言わないで、まず調べてみろ」と言われて調べているところです。 私が客先に最初に提案した方法は、超小型のPCを中間に立てて、それを介してアクセスする方法でした。 そのPCはWindowsベースのODBCドライバーも完備された環境で、こちらからのアクセスを解釈してSQLサーバーへ問い合わせるという仕組みです。 nda23様の方法も簡便で良さそうですね!ただ、相手のサーバー内にこちらのプログラムを置けないように思うので、中間PC方式しかないかな...