- - PR -
カーソル文はVBやC#から使えますか?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-02-21 16:41
データベースの勉強をしています。
DECLARE CURSOR文というのが本に書かれていたので、 これを勉強したいと思ったのですが、 CやCOBOL”など”で使えると書かれていました。 この”など”にVBやC#は含まれていますか? 開発環境として、Visual Studioがあるので、 これで勉強できたらと思っております。 データベースは、SQL ServerとDB2が使えます。 もしご存知でしたら、教えて頂けませんか? ぜひよろしくお願い致します。 | ||||||||
|
投稿日時: 2009-02-22 00:23
カーソルをCOBOLやCで使えるのその「使える」がなにを 指してるかによるのですが・・・。 どのように使うことを想定していますか? なんか、投稿内容からするとCやCOBOLのソースに直接書くことを想定 されている様な気がするんですが、そんな使い方できましたっけ? (CでDB使った開発が無いモノではっきり覚えてないですが・・・) | ||||||||
|
投稿日時: 2009-02-22 00:56
CやCOBOLの経験がないため、確かではないのですが、 SQLを埋め込んで使用できると認識しておりました。 以下のイメージでしょうか。。。 http://www.t3.rim.or.jp/~buchi/procobol/sld017.htm これの問3とか・・・ http://archive.mag2.com/mail/0000126616/20090108020000000.html 使ったことがありませんので、私の認識間違いかもしれません。。。 実際に使って覚えたいと思うのですが、 何か良い方法があればと思っております。 VBやC#でなくても良いのですが、 比較的簡単に使ってためしてみたいのです。 ぜひご回答お願い致します。 | ||||||||
|
投稿日時: 2009-02-22 03:17
情報処理試験の方はちょっと、微妙なんですが もう一つの方のCOBOLのページなんですが これは、pro*COBOLといって、ORACLが提供する(10gとかで有るかは分かりません。) もので、おなじくpro*Cってのあります。 ORACLEが提供するものなので、DBはORACLEしか使用出来ないと思いました。 (pro*Cいじったのもう十数年前なので・・・。) 通常のCやCOBOLからは同じ様な使い方は出来ません。 当然、VB.NETやC#もNGです。 どのような勉強を目的としているかは分かりませんが、 もし、DBそのものの勉強とかをしたいのでしたら、ストアドプロシージャを 勉強されてはいかがでしょうか? ストアドプロシージャは、DB内に作成するプログラム(の様な)で このなかなら「DECLARE CURSOR」も「FETCH」とかも使用できますよ。 | ||||||||
|
投稿日時: 2009-02-22 16:50
「埋め込みSQL」を使いたいと、言っているのですよね?
埋め込みSQLは、CやCOBOLなどのソースコード中に、SQLを直接、ソースコードの一部として書き込む方式です。 EXEC SQLという命令文に続けて、SQLを書きます。 COBOLであれば、次のような感じ。
Cであれば、次のような感じ。
Wikipediaに埋め込みSQL例が記載されていますが、例題部分は実は私が書き込んだものです。 http://ja.wikipedia.org/wiki/SQL 埋め込みSQLを使ったソースコードは、次のような手順で実行形式ファイルにします。 「埋め込みSQLを含んだCやCOBOLのソースコード」 ↓ 入力 プリプロセス(プリコンパイルと呼ぶ場合もある)=ソースコード中のSQLを解析、実行計画の生成、SQLを実行するめのCALL文等の生成+SQL部分をコメント化など ↓ 出力 「CやCOBOLなどでコンパイル可能なソースコード」 ↓ 入力 CやCOBOLなどのコンパイラ (ホスト言語のコンパイラ) ↓ 出力 「オブジェクト」 ↓ リンカ ↓ 「実行形式ファイル」 プリプロセス(プリコンパイラ)は、SQLの解析や実行計画の生成などを行うため、RDBMSとの連携が必要になります。そのため、埋め込みSQLを扱えるプリプロセサを提供しているのは、RDBMSメーカーであったり、RDBMSメーカーと技術提携しているメーカーが殆どです。 Oracleでは、COBOL、Cで埋め込みSQLを使える製品として、PRO*COBOL、PRO*C/C++があります。 これと同様に、埋め込みSQLをCやCOBOLなどで使えるようにしているRDBMSでは、各社それぞれプリプロセサ(プリコンパイラ)を出しています。 対応しているプログラミング言語は、CやCOBOLだけでなく、FORTRANやPL/Iなどを使用可能にしているRDBMSがあります。 「など」となっているのは、使用するRDBMSにより、どのプログラミング言語を使えるかに違いがあるからです。 VBやC#での埋め込みSQLというのは、私自身は聞いたことはありません。 DB2は1980年代から開発が続けられており、COBOLなどのプリプロセサ(プリコンパイラ)製品があります。ただ、OSやバージョンが未提示ですので、具体的な製品名は省略します。 なお、DECLARE CURSORを使ってみたいということであれば、VBなどのプログラムに埋め込む方法ではないですが、SQL ServerであればT-SQL、DB2であればストアドプロシジャで使えます。 | ||||||||
|
投稿日時: 2009-02-22 17:39
追記しておきます。
製品により、プリプロセス(プリコンパイル)とコンパイルを別々に行うものと、両方を一括で行うものがあります。 また、外部表を実装しているRDBMSでは、異なるRDBMSを埋め込みSQLで操作可能としているものもあります。 例えば、埋め込みSQLを含むCOBOLやCで作成したアプリケーションで、メインフレームのRDBMSとUNIXなどのRDBMSの両方を操作するといったことを実装済のRDBMSもあります。 | ||||||||
|
投稿日時: 2009-02-23 16:01
そうなのですね。 普通はプログラム内に書くことはできないのですね。 勉強になりました。 単純にDECLARE CURSORを使って覚えたいだけでしたので、 ストアドプロシージャで使用してみたいと思います。 このことも知りませんでしたので、とても助かりました。 自分なりに頑張って覚えてみようと思います。 ご回答ありがとうございました。 | ||||||||
|
投稿日時: 2009-02-23 16:04
こういうのを埋め込みSQLと言うのですね。 当初は、これをやりたかったのです。
教えて頂いたストアドプロシージャにて、勉強してみようと思います。 ありがとうございます。 詳しいご説明まで頂き、とても勉強になりました。 ありがとうございました。 |
1