close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 16 years ago

Last modified 8 years ago

#708 assigned defect

Comportamiento diferente en el acceso al campo fecha con el driver ODBC y con el driver nativo de PostGreSql.

Reported by: Lander Ibarra Iriondo Owned by: Jorge
Priority: lowest Milestone: Mantainance
Component: Database Version: 1.1.7
Severity: trivial Keywords:
Cc:

Description (last modified by Víctor de Buen Remiro)

Ejecutando una query a través del driver nativo de PostGreSql y el ODBC los campos fecha tienen diferente consideración para cada
uno de ellos.

A continuación tenemos todo lo necesario para replicar el problema:
La versión de TolBase es: v1.1.7 b.13 2009-06-19 10:36:25 i686-win.
Tabla de acceso dentro de la Base de datos de PostGreSql

CREATE TABLE ven_f_perico_de_los_palotes
(
  dt_dia   date NOT NULL,
  qt_venta numeric(5)
)

Al acceder a las datos de la tabla a través de la conexión nativa de PostGreSql:

Real DBOpen("ODBC", "_XXX_", "_YYY_", [["postgres", "_ZZZ_", "p-postgresql"]]);
Real DBExecQuery("select dt_dia, qt_venta order by dt_dia", Diario, [[ "test"]]);

Me encuentro con este error:

ERROR: [_numero_] la función 'postgres_GetAsDate' en el módulo PostgreSQL ha fallado.

Al acceder a través del driver ODBC

Real DBOpen("ODBC", "_XXX_", "_YYY_");
Real DBExecQuery("select dt_dia, qt_venta order by dt_dia", Diario, [[ "test"]]); 

No tengo problema alguno

En el caso de la conexión nativa de PostGreSql he de utilizar un cast para el campo fecha de la qry y no me presenta ningún error:

Real DBOpen("ODBC", "_XXX_", "_YYY_", [["postgres", "_ZZZ_", "p-postgresql"]]);
Real DBExecQuery("select cast(dt_dia as timestamp) fecha, qt_venta order by fecha", Diario, [[ "test"]]);

Un saludo Lander Ibarra Iriondo

Change History (5)

comment:1 Changed 16 years ago by Lander Ibarra Iriondo

Ejecutando una query a través del driver nativo de PostGreSql? y el ODBC los campos fecha tienen diferente consideración para cada
uno de ellos.
A continuación tenemos todo lo necesario para replicar el problema:
La versión de TolBase es: v1.1.7 b.13 2009-06-19 10:36:25 i686-win.
Tabla de acceso dentro de la Base de datos de PostGreSql?
CREATE TABLE ven_f_ventas
(
dt_dia date NOT NULL,
qt_venta numeric(5)
)
Al acceder a las datos de la tabla a través de la conexión nativa de PostGreSql:
Real DBOpen("ODBC", "_XXX_", "_YYY_", postgres", "_ZZZ_", "p-postgresql?);
Real DBExecQuery("select dt_dia, qt_venta from ven_f_ventas order by dt_dia", Diario, "test"?);
Me encuentro con este error: ERROR: [_numero_] la función 'postgres_GetAsDate' en el módulo PostgreSQL ha fallado.
Al acceder a través del driver ODBC
Real DBOpen("ODBC", "_XXX_", "_YYY_");
Real DBExecQuery("select dt_dia, qt_venta from ven_f_ventas order by dt_dia", Diario, "test"?);
No tengo problema alguno
En el caso de la conexión nativa de PostGreSql? he de utilizar un cast para el campo fecha de la qry y no me presenta ningún error:
Real DBOpen("ODBC", "_XXX_", "_YYY_", postgres", "_ZZZ_", "p-postgresql?);
Real DBExecQuery("select cast(dt_dia as timestamp) as fecha, qt_venta from ven_f_ventas order by fecha", Diario, "test"?);

Un saludo Lander Ibarra Iriondo

comment:2 Changed 16 years ago by Víctor de Buen Remiro

Description: modified (diff)
Milestone: Manteinance
Priority: highestlowest
Severity: blockertrivial
Status: newassigned

El problema no es demasiado grave pues se soluciona poniendo el cast en la consulta, lo cual funciona sea cual sea el driver, digamos que se trata más bien de una incomodidad, una vez conocido el parche. Por este motivo he rebajado la prioridad y la severidad del ticket.

De todos modos le asigno el tema a Jorge para que lo mire cuando pueda.

Gracias por el reporte.

comment:3 Changed 9 years ago by Pedro Gea

Véase #1077

comment:4 Changed 9 years ago by Pedro Gea

Véanse #1267, #1648, #1693

comment:5 Changed 8 years ago by Pedro Gea

(In [7321]) Refs #1077, #708
Se incorpora el tipo date al driver nativo de postgres.

Note: See TracTickets for help on using tickets.