Re: Llamar un proceduce en Postgres desde Clarion

From: Eliana Gutierrez <egp1962(at)yahoo(dot)com(dot)au>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: ayuda postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Llamar un proceduce en Postgres desde Clarion
Date: 2006-12-21 03:44:28
Message-ID: 272091.38575.qm@web53203.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Finalmente me funciona el llamado a la funcion desde clarion usando
StringSQL = 'select createtable(' & '''' & tablename & ''',' & '''' & columname & ''',' & '''' & columntype & ''')' lo probe con CALL y tambien funciona

Pero la funcion internamente en postgres no esta funcionando bien al ser llamada desde clarion, el codigo de la funcion es

CREATE OR REPLACE FUNCTION createtable(tablename "varchar", columname "varchar", columntype "varchar")
RETURNS void AS
$BODY$
declare
num int2 :=0;
begin
select into num count(*) from pg_class where relname = tablename;
if (num = 0) then
execute 'create table ' || tablename || '(' || columname || ' ' || columntype || ')';
else
execute 'alter table ' || tablename || ' add column ' || columname || ' ' || columntype;
end if;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

El select interno a la pg_class table no lo hace porque la primera vez que lo ejecuto crea la tabla pero las sgtes veces deviera hacer un alter y no lo hace da el error
relation "test3" already exists
CONTEXT: SQL statement "create table test3

Este error queda en el archivo de log

Ely

Send instant messages to your online friends http://au.messenger.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eliana Gutierrez 2006-12-21 04:38:50 Postrges desde Clarion Ya me funciono
Previous Message Mario A Wojcik 2006-12-21 02:44:11 Re: Llamar un proceduce en Postgres desde Clarion