[pgsql-jp: 33037] Re: C言語埋め込みでのビット演算

近藤直文 nkon @ shonan.ne.jp
2004年 5月 30日 (日) 14:01:30 JST


ソフト工房の近藤です。

丁度 7.3.4 の ESQL で開発中でしたので試してみました。
下記コードは、7.3.4 の ECPG で正常実行できました。

EXEC SQL select count(*) into :wcnt from ta where ( id & 'XFF0000') =
'X010000';

ecpg の生成したCのコードは次の通り。

{ ECPGdo(__LINE__, NULL, "select count (*) from ta where ( id &
'XFF0000' ) = 'X010000' ", ECPGt_EOIT,
ECPGt_int,&(wcnt),1L,1L,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}


ところが、次のコードは、ECPG では、Syntax error になります。
EXEC SQL select count(*) into :wcnt from ta where ( id & X'FF0000') =
X'010000';

なお、psql では、上のどちらのコードでも、即ち、
X'FF0000' でも 'XFF0000' でも 実行されます。

環境は次の通り。
OS Linux version 2.4.18-1
ecpg (PostgreSQL 7.3.4) 2.10.0

以上ご参考まで。

-------------------------------------------------------------------
TFL)久村 孝之 wrote:

>こんにちは。久村と申します。
>  
>
.....略.....

>実行しているSQLは次のようなものです。
> SELECT DATA FROM TABLE WHERE (ID & 'XFF0000') = 'X010000';
> SELECT DATA FROM TABLE WHERE (ID & X'FF0000') = X'010000';
>いずれも実行時にエラーでした。
>
>  
>
.....略 .....

>環境は次の通りです。
> OS        :Linux 2.2.19-6.2.16
> PostgreSQL:7.2.1
>  
>
....略....

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  ソフト工房      近藤直文        Email:  nkon @ shonan.ne.jp 
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/





pgsql-jp メーリングリストの案内