>______________________________
>De: Jaime Casanova <jcasa...@systemguards.com.ec>
>Para: POSTGRES <pgsql-es-ayuda@postgresql.org>
>Enviado: viernes, 5 de junio, 2009 1:13:22
>Asunto: [pgsql-es-ayuda] [semi OT] mapping vfp variables to sql columns
>
>Hola todos,
>
>Otra vez tratando de entender vfp.
>He aquí que tengo una aplicación (no es mía, por si acaso ;) que hace
>algo como lo que se muestra en el adjunto.
>Como verán el código en si es pésimo, no digamos la elección de los
>nombres de las variables. Pero algo que no ayuda en nada es el hecho
>se que en vfp no solo no hay necesidad de declarar el tipo de dato de
>las variables sino que "no es posible hacerlo".
>

Jaime, no se si no muestras todo el código, pero SI es posible definri el tipo 
de dato de una variable. Se hace así:

LOCAL 
LOCAL 
LOCAL 
LOCAL 
LOCAL LOCAL llOk AS BOOLEANLOCAL lcXml AS STRINGlcMetodo AS STRINGlnTranInve AS 
INTEGERlfDiferencia AS DOUBLElfValor AS DoubleloParte AS VARIANTLOCAL 
loExistLoc AS VARIANTLOCAL ldTransac AS DATE

Atentamente,

RAUL DUQUE
Bogotá, Colombia

>Sí que fox interpreta los tipo de datos a su antojo de modo que al
>jeecutar el INSERT postgres me da el siguiente error (fijense que el
>cero que debia ser interpretado como un entero es interpretado como un
>loat8:
>"""
>2009-06-04 15:28:53 COT ERROR:  column "impreso" is of type boolean
>but expression is of type double precision at character 466
>2009-06-04 15:28:53 COT HINT:  You will need to rewrite or cast the expression.
>2009-06-04 15:28:53 COT STATEMENT:  INSERT INTO FCDOCUME
>>(tipo,numero,fecha,cliente,zona,vendedor,tip_aplic,num_aplic,fecha_ven,subtotal,total,comentario,codcta,IMPRESO,COM_LIQUID,BLOQUEADO,BLOQUE1,ASENTADO,FINANCIADO,POSTFECHA,IMPUESTO,TURNO)values(E'CC'
>,'2135'::float8 ,'2009-06-04 00:00:00'::timestamp ,E'0156          '
>,E'  ' ,E'0003      ' ,E'  ' ,'0'::float8 ,'2009-06-04
>00:00:00'::timestamp ,'1'::float8 ,'1.12'::float8 ,E'
>    DAFSD                      ' ,'0'::float8 ,'0'::float8
>,'0'::float8 ,'0'::float8 ,'0'::float8 ,'0'::float8 ,'0'::float8
>,'0'::float8 ,'0.12'::float8 ,E'001' )
>"""

Una solucion simple claro es que al armar la cadena puedo hacer un
cast para indicar el tipo de dato.
alguna sugerencia sobre de que otra forma puedo controlar el tipo de
dato que será enviado a postgres (de ser posible que no implique
reescribir todo)?

-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157



      ¡Obtén la mejor experiencia en la web! Descarga gratis el nuevo Internet 
Explorer 8. http://downloads.yahoo.com/ieak8/?l=mx
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
               http://archives.postgresql.org/pgsql-es-ayuda

Responder a