ECPG insert into table name as a variable

Поиск
Список
Период
Сортировка
От Ryan Mooney
Тема ECPG insert into table name as a variable
Дата
Msg-id 20030923211207.GB13521@pcslink.com
обсуждение исходный текст
Ответы Re: ECPG insert into table name as a variable  (Michael Meskes <meskes@postgresql.org>)
ECPG insert into table name as a variable  (Lee Kindness <lkindness@csl.co.uk>)
Список pgsql-interfaces

I was doing testing on an app and wanted to make a table name a variable
so I can change it via a config file (instead of re-compile/relink).

like so: EXEC SQL INSERT INTO :tname (host, point, type, cooked) VALUES (:host, :name, :type, :cooked);

This fails ecpg preprocess with "ERROR: syntax error at or near ":tname" whereas if the table 
name is specified statically it works fine, like: EXEC SQL INSERT INTO tname (host, point, type, cooked) VALUES (:host,
:name,:type, :cooked);
 

When I tried hacking the resulting C code (as a test exercise) like:
 { ECPGdo(__LINE__, 0, 1, NULL, "insert into ? ( host  , point  , type  , cooked ) values (  ? ,  ? ,  ? ,  ? )",
ECPGt_char,&(tname),(long)0,(long)1,1*sizeof(char),ECPGt_char,&(host),(long)0,(long)1,1*sizeof(char),
ECPGt_NO_INDICATOR,NULL , 0L, 0L, 0L, ECPGt_char,&(name),(long)0,(long)1,1*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L,
0L,0L, ECPGt_char,&(type),(long)1,(long)1,1*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
ECPGt_char,&(cooked),(long)1,(long)1,1*sizeof(char),ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
ECPGt_char,(starttime),(long)30,(long)1,30*sizeof(char),ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
ECPGt_char,(interval),(long)30,(long)1,30*sizeof(char),ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
 

it got all funny and didn't work very well (well ok it didn't work at all): pg.pgc:129 SQL Insert failed: Invalid
statementname (null) in line 124.
 

So, I was wondering am I just missing some obvious way to do this, or
is this not supported at all?

Thanks


-- 
>-=-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-=-<
Ryan Mooney                           ryan@pcslink.com 
<-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=-> 


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

Предыдущее
От: "Jeroen T. Vermeulen"
Дата:
Сообщение: Re: troubles with getting data from tables
Следующее
От: Igor Shevchenko
Дата:
Сообщение: libpq: how to get a sequence of partial PGresult-s