Skip site navigation (1) Skip section navigation (2)

Re: operador incorrecto para numeric and float8

From: Raul Breindembach <rbreindembach(at)cantv(dot)net>
To: Eliodoro Michel <Elio_Michel(at)excite(dot)com>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: operador incorrecto para numeric and float8
Date: 2001-10-31 13:33:12
Message-ID: 3BDFFD98.8070700@cantv.net (view raw or flat)
Thread:
Lists: pgsql-odbc
Hola otra vez:
       Gracias por la sugerencia, me funcionò muy bien, aunque tuve que 
hacer algunas trampas para conservar la compatibilidad de mi programa 
con otras bases de datos a travès de ODBC.
       En relación con el nebuloso uso de ODBC solo te puedo decir lo 
que sé por experiencia:

       ODBC es una interfaz entre la aplicación y el manejador de base 
de datos, en este caso PostgreSQL, solo que ODBC tiene que utilizar a su 
vez una intefaz almacenada en una biblioteca de enlace dinámico (.DLL) 
donde se encuentran los procedimientos y funciones que manejarán la base 
de datos, es por eso que la sugerencia que me hiciste funcionó, solo que 
cuando lo intento con access no sirve, ni con sqlserver, es algo así 
como que PostgreSQL ODBC manejara directamente la base de datos.

    APLICACIÓN <======> ODBC <======> PostgreSQL
                                                    A
                                                    !!
                                                    V
                                        PosgreSQL ODBC

Eliodoro Michel wrote:

> Probaste usando la definición explicita para el tipo de variable?
> 
>   Cn.Execute "Update inventar set exactual = (inventar.exactual::float8 -
> 1.5) where inventar.codigo = '01'"
> 
> No estoy seguro si esto lo logre ejecutar VB (a menos que pase la cadena
> directamente al motor de Posgresql sin interpretarlo a través de ODBC) pero
> creo que deberia funcionar.
> 
> Yo personalmente para ciertas cosas raras, y para evitar el no saber que
> ocurre en el camino de ODBC-Postgresql preferi usar en alguno casos
> funciones Postgresql que luego pueden ser llamadas en vistas o a tráves de
> triggers.
> 
> Si tienes información sobre el nebuloso uso de ODBC, agradeceria saber donde
> puedo ubicar más datos sobre eso.
> 
> 
> Saludos y suerte
> 
> Elio
> 
> 
> On Mon, 22 Oct 2001 21:45:39 -0400, Raul Breindembach wrote:
> 
>   Hola a todos.
>   
>   Estuve ausente durante un par de meses, pero ya vuelvo con todos los
> hierros, y con algún problemita.
>   
>   He creado una tabla con la siguiente estructura:
>   
>   Create table inventar
>   (
>   codigo Varchar(20) primary key,
>   dpto Decimal(10) Null,
>   descripcio Varchar(100) Null,
>   referencia Varchar(20) Null,
>   unidad Varchar(10) Null,
>   unidxgrupo Decimal(15,2)  default 0,
>   dgrupo Varchar(10) Null,
>   tipo Decimal(10) Null,
>   costo1 decimal(15,2) default 0,
>   costo2 decimal(15,2) default 0,
>   precio1 decimal(15,2) default 0,
>   precio2 decimal(15,2) default 0,
>   precio3 decimal(15,2) default 0,
>   preciop1 decimal(15,2) default 0,
>   preciop2 decimal(15,2) default 0,
>   exactual Decimal(15,2)  default 0,
>   examin Decimal(15,2)  default 0,
>   exmax Decimal(15,2)  default 0,
>   excento decimal(10) default 0,
>   exant Decimal(15,2)  default 0,
>   pvp1 decimal(15,2) default 0,
>   pvp2 decimal(15,2) default 0,
>   pvp1g decimal(15,2) default 0,
>   pvp2g decimal(15,2) default 0,
>   exdeposito decimal(15,2) default 0,
>   extienda decimal(15,2) default 0
>   );
>   
>   Tengo un pequeño problema en mi programa, al ejecutar la siguiente
> instrucción:
>   
>   Cn.Execute "Update inventar set exactual = (inventar.exactual - 1.5) where
> inventar.codigo = '01'"
>   
>   --------------------------------------------------------------------
>   Microsoft Visual Basic
>   --------------------------------------------------------------------
>   Error '-2147467259 (80004005)' en tiempo de ejecución:
>   
>   Error while executing the query (non-fatal);
>   ERROR: Unable to identify an operator '-' for types 'numeric' and
>   'float8'
>   
>   you will have to retype this query using an explicit cast
>   
>   --------------------------------------------------------------------
>   
>   Lo cual no sucede al ejecutar la que sigue:
>   
>   Cn.Execute "Update inventar set exactual = (inventar.exactual - 1) where
> inventar.codigo = '01'"
>   
>   Claramente se nota dónde está el error, lo que no sé es como evitar que
> suceda, tengo la versión de PostgreSQL 7.1.1 y la versión 7.01.00.05 de
> PostgreSQL ODBC
>   
>   Gracias por adelantado, acepto cualquier sugerencia.
> 
> 
> 
> 
> 
> _______________________________________________________
> http://inbox.excite.com
> 
> 
> 
> 


Responses

pgsql-odbc by date

Next:From: Simeo ReigDate: 2001-10-31 15:21:22
Subject: Re: operador incorrecto para numeric and float8
Previous:From: Vince VielhaberDate: 2001-10-30 21:42:31
Subject: Re: Problems to download ODBC Driver

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group