- PR -

カーソル文はVBやC#から使えますか?

1
投稿者投稿内容
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2009-02-21 16:41
データベースの勉強をしています。
DECLARE CURSOR文というのが本に書かれていたので、
これを勉強したいと思ったのですが、
CやCOBOL”など”で使えると書かれていました。

この”など”にVBやC#は含まれていますか?
開発環境として、Visual Studioがあるので、
これで勉強できたらと思っております。
データベースは、SQL ServerとDB2が使えます。

もしご存知でしたら、教えて頂けませんか?
ぜひよろしくお願い致します。
かずい
常連さん
会議室デビュー日: 2008/09/30
投稿数: 28
お住まい・勤務地: 北海道札幌市
投稿日時: 2009-02-22 00:23

カーソルをCOBOLやCで使えるのその「使える」がなにを
指してるかによるのですが・・・。
どのように使うことを想定していますか?

なんか、投稿内容からするとCやCOBOLのソースに直接書くことを想定
されている様な気がするんですが、そんな使い方できましたっけ?
(CでDB使った開発が無いモノではっきり覚えてないですが・・・)
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2009-02-22 00:56
引用:

かずいさんの書き込み (2009-02-22 00:23) より:

なんか、投稿内容からするとCやCOBOLのソースに直接書くことを想定
されている様な気がするんですが、そんな使い方できましたっけ?
(CでDB使った開発が無いモノではっきり覚えてないですが・・・)


CやCOBOLの経験がないため、確かではないのですが、
SQLを埋め込んで使用できると認識しておりました。
以下のイメージでしょうか。。。
http://www.t3.rim.or.jp/~buchi/procobol/sld017.htm
これの問3とか・・・
http://archive.mag2.com/mail/0000126616/20090108020000000.html
使ったことがありませんので、私の認識間違いかもしれません。。。

実際に使って覚えたいと思うのですが、
何か良い方法があればと思っております。
VBやC#でなくても良いのですが、
比較的簡単に使ってためしてみたいのです。

ぜひご回答お願い致します。
かずい
常連さん
会議室デビュー日: 2008/09/30
投稿数: 28
お住まい・勤務地: 北海道札幌市
投稿日時: 2009-02-22 03:17
引用:

ジンさんの書き込み (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
使ったことがありませんので、私の認識間違いかもしれません。。。




情報処理試験の方はちょっと、微妙なんですが
もう一つの方のCOBOLのページなんですが
これは、pro*COBOLといって、ORACLが提供する(10gとかで有るかは分かりません。)
もので、おなじくpro*Cってのあります。
ORACLEが提供するものなので、DBはORACLEしか使用出来ないと思いました。
(pro*Cいじったのもう十数年前なので・・・。)

通常のCやCOBOLからは同じ様な使い方は出来ません。
当然、VB.NETやC#もNGです。

どのような勉強を目的としているかは分かりませんが、
もし、DBそのものの勉強とかをしたいのでしたら、ストアドプロシージャを
勉強されてはいかがでしょうか?

ストアドプロシージャは、DB内に作成するプログラム(の様な)で
このなかなら「DECLARE CURSOR」も「FETCH」とかも使用できますよ。
忠犬
大ベテラン
会議室デビュー日: 2006/05/01
投稿数: 109
投稿日時: 2009-02-22 16:50
「埋め込みSQL」を使いたいと、言っているのですよね?

埋め込みSQLは、CやCOBOLなどのソースコード中に、SQLを直接、ソースコードの一部として書き込む方式です。
EXEC SQLという命令文に続けて、SQLを書きます。

COBOLであれば、次のような感じ。

コード:
EXEC SQL
 SQL文
END-EXEC



Cであれば、次のような感じ。

コード:
exec sql
 sql文 ;



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であればストアドプロシジャで使えます。
忠犬
大ベテラン
会議室デビュー日: 2006/05/01
投稿数: 109
投稿日時: 2009-02-22 17:39
追記しておきます。

製品により、プリプロセス(プリコンパイル)とコンパイルを別々に行うものと、両方を一括で行うものがあります。

また、外部表を実装しているRDBMSでは、異なるRDBMSを埋め込みSQLで操作可能としているものもあります。
例えば、埋め込みSQLを含むCOBOLやCで作成したアプリケーションで、メインフレームのRDBMSとUNIXなどのRDBMSの両方を操作するといったことを実装済のRDBMSもあります。
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2009-02-23 16:01
引用:

かずいさんの書き込み (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」とかも使用できますよ。



そうなのですね。
普通はプログラム内に書くことはできないのですね。
勉強になりました。

単純にDECLARE CURSORを使って覚えたいだけでしたので、
ストアドプロシージャで使用してみたいと思います。
このことも知りませんでしたので、とても助かりました。
自分なりに頑張って覚えてみようと思います。

ご回答ありがとうございました。
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2009-02-23 16:04
引用:

忠犬さんの書き込み (2009-02-22 16:50) より:
「埋め込みSQL」を使いたいと、言っているのですよね?

埋め込みSQLは、CやCOBOLなどのソースコード中に、SQLを直接、ソースコードの一部として書き込む方式です。
EXEC SQLという命令文に続けて、SQLを書きます。


こういうのを埋め込みSQLと言うのですね。
当初は、これをやりたかったのです。

引用:

忠犬さんの書き込み (2009-02-22 16:50) より:

なお、DECLARE CURSORを使ってみたいということであれば、VBなどのプログラムに埋め込む方法ではないですが、SQL ServerであればT-SQL、DB2であればストアドプロシジャで使えます。



教えて頂いたストアドプロシージャにて、勉強してみようと思います。
ありがとうございます。

詳しいご説明まで頂き、とても勉強になりました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)