- 締切済み
何をつかえば・・・
カテゴリーが異なっていたらすみません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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
こちら↓が参考になると思います。
- me_no_car
- ベストアンサー率24% (22/90)
'01'、'02'など2バイト以上のものCでは 文字列として扱います。 if(type.arr == '01'){ ↓ if( strncmp((char *)type.arr,"01",type.len) == 0 ){ でいけると思います。