最新閲覧日:

こんにちは。
Pro*CでSQLを実行しようとしています。

varchar table_data[200];
(略)
EXEC SQL SELECT aaa, bbb, ccc
INTO :table_data
FROM SAMPLE
(略)
のようにしてSAMPLEテーブルの列(aaa,bbb,ccc)を変数table_dataに
格納したいと考えています。(もちろん、現在はtable_dataにはaaaの値しか
入っていません(泣))

こういった漢字で変数table_dataに選択列(複数)を取得できるような考えは
あるのでしょうか?

ちなみにaaa,bbb,cccの区切り文字は考えなくても構いません。

ご多忙でしょうが、どのたかご回答宜しくお願い致します。

A 回答 (2件)

>構造体の宣言はそのまま(受け皿2つ)で、取得するデータは1つということなんですが・・・


> ※受け皿M個、取得データN個(M>Nの関係)です。

申し訳ないですが、私にはわからないです。
私の場合は、発行する SQL ごとに構造体を用意しているものですから。

--- 以下、私の勝手な流儀 --------------------------------------------
個人的にはそのような処理はしない方がいいような気がします。
適切な入れ物に適切なデータを入れる、という発想でコーディングされた方が、
ソースの可視性とか、メモリの無駄遣い、といった観点で見たときに
いいように思います。
---------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

確かに2ndさんがおっしゃる通りだと思います。
私も適切な入れ物に適切なデータを入れるべきだと思います。

今回の場合、取得データが1~600もあります。
もう少し考えてみます。

ご多忙の中、ご返答いただき感謝します。
ありがとうございましたm(_ _)m

お礼日時:2002/03/07 09:06

一つの配列に複数の値を格納する方法は知らないのですが、


ご質問のような状況で私が用いている方法をお知らせしておきます。

struct kozo{
  VARCHAR c1[10];
  VARCHAR c2[10];
}kozo_data;

struct kozo_ind{
  short c1_ind;
  short c2_ind;
}kozo_data_ind;

のような構造体を定義し、

EXEC SQL select c1, c2 INTO :kozo_data INDICATOR :kozo_data_ind
FROM t1;

というように、INDICATOR を指定してやることで、
構造体 kozo_data に select されたレコードが格納されます。
もちろん、初めに構造体 kozo_data を初期化させる必要があります。

このやり方ではどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございました。で、で、できました!!。

そこでもう一つご質問があるのですが・・・
2ndさんがかかれたプログラムに

EXEC SQL select c1, c2 INTO ・・・

と書かれていますが、そのときc1, c2の部分をc1のみにはできない
ものなのでしょうか?

構造体の宣言はそのまま(受け皿2つ)で、取得するデータは1つということなんですが・・・
※受け皿M個、取得データN個(M>Nの関係)です。

ご多忙の中くだらない質問にお答えくださっていただいたのに
またくだらない質問をして申し訳ありません。

宜しくお願い致します。

お礼日時:2002/03/06 18:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ