• 締切済み

何をつかえば・・・

カテゴリーが異なっていたらすみませんm(_ _)m 宜しくお願い致します。 ---------------------------------- EXEC SQL BEGIN DECLARE SECTION;  VARCHAR type[3]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT data_type into :type FROM test_tbl WHERE name='test'; type.arr[type.len]='\0'; if(type.arr == '01'){ /* 処理Aへ */ }else{ /* 処理Bへ */ } --------------------------------------- 上記のようなプログラムがあります。 table_testのnameフィールドが'name'の date_typeフィールドの値を取得します。 取得したdate_typeフィールドの値が'01'なら 処理Aへ、'02'、'03'等なら処理Bを実行したいと 考えています。 ですが、上記の if(type.arr == '01'){ だとエラーが発生しています。 どのようにすればチェックすることができるでしょうか? ちなみに date_typeフィールドはかならずデータがはいっている。 nameはprimary keyの設定のため重複は存在しません。 DBはORACLE、言語はPro*Cです。 どうか宜しくお願い致します。m(_ _)m

みんなの回答

noname#4564
noname#4564
回答No.2

こちら↓が参考になると思います。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=514727
  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.1

'01'、'02'など2バイト以上のものCでは 文字列として扱います。 if(type.arr == '01'){   ↓ if( strncmp((char *)type.arr,"01",type.len) == 0 ){ でいけると思います。