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
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 |