manipulate array wiht ecpg

Поиск
Список
Период
Сортировка
От S.F. Lee
Тема manipulate array wiht ecpg
Дата
Msg-id 19991227095139.20990.qmail@web214.mail.yahoo.com
обсуждение исходный текст
Ответы Re: [INTERFACES] manipulate array wiht ecpg  (Michael Meskes <meskes@postgreSQL.org>)
Список pgsql-interfaces
Hi,    I am using ecpg to manipulate the whole row in a
table,and I have a problem in array, can anybody give
me a hint or a small test program to process array?

First of all , I create a table(trdday) just as
follow: 1. edit a trdday.sql file
    CREATE TABLE trdday    (      id         int  PRIMARY KEY,      pv         int[3]    ); 2. psql -f trdday.sql mydb
3.I insert a row of data via trdday_insert, but got
 
following     messge :
  sql error Postgres error: ERROR:  Attribute 'pv' is  of type '_int4' but expression is of type 'int4'       You will
needto rewrite or cast the        expression  line 13.  Segmentation fault (core dumped)
 
 4. I insert two rows of data under psql:    insert into trdday values(1,'{11,22,33}');    insert into trdday
values(2,'{44,55,66}');5. Finally, I can find two rows of data in trdday.
 


Then I write a program (trdday_select.pgc):
  exec sql whenever sqlerror sqlprint;  exec sql include sqlca;  main ()  {     typedef struct { int pv[3]; }
int_array;    exec sql type int_array is struct { int pv[3];
 
};     exec sql begin declare section;          struct data        {           int id;           int_array a;        }
temp;    exec sql end declare section;
 
     exec sql connect to mydb;     exec sql select * into :temp from trdday where
id=1;     exec sql commit;     exec sql disconnect;     exit(0);  }

When I execute the program trdday_select, I got
following error message:
  sql error Not correctly formatted int type:
{11,22,33} line 17.  sql error Not correctly formatted int type:
{11,22,33} line 17.  sql error Not correctly formatted int type:
{11,22,33} line 17.


Here is my trdday_insert.pgc:

exec sql whenever sqlerror sqlprint;
/*exec sql include sqlca;*/

main ()
{  exec sql begin declare section;     int id;     int pv[3] = {11,22,33};  exec sql end declare section;
  exec sql connect to mydb;  exec sql insert into trdday(id,pv) values(1,:pv);  exec sql commit;  exec sql disconnect
all; exit(0);
 
}
  Thanks              S.F.Lee




_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


В списке pgsql-interfaces по дате отправления:

Предыдущее
От: "S.F. Lee"
Дата:
Сообщение: manipulate array wiht ecpg
Следующее
От: Arien Vijn
Дата:
Сообщение: ...