[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 メーリングリストの案内