Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DBExpress (Delphi2006) y oracle9i (https://www.clubdelphi.com/foros/showthread.php?t=35603)

Migmam2 15-09-2006 11:05:12

DBExpress (Delphi2006) y oracle9i
 
Hola a todos,

Estoy utilizando actualmente Delphi2006 y oracle9i y quisiera comentar algunos problemas que he visto por si son alucinaciones mias o realmente es así.

Primero. Hay reportado un Bug en Borland (Report #29269) el cual he podido comprobar y es que los campos CLOB al hacer applyupdates pierden el último caracter. A día de hoy creo que esto sigue sin resolverse.

Segundo. Anteriomente he trabajado con MySQL y al eliminar un registro mediante clientdataset.delete el registro se eliminaba correctamente aun cuando ese clientdataset estuviera vinculado a un sqlquery que contuviera una sentencia SELECT con INNER.
En el caso de Oracle y al inspeccionar los mensajes con SQLMonitor veo que trata de eliminar el registro utilizando en la clausula WHERE los campos pertenecientes a la segunda tabla relacionada y por consiguiente falla.
Ejemplo.
Tabla clientes:
id_cliente
cliente
id_tipo_cuenta

Tabla tipos_cuenta
id_tipo_cuenta
tipo_cuenta

sqlquery1.sql.text:='SELECT * FROM clientes INNER JOIN tipos_cuenta USING (id_tipo_cuenta)';

Al eliminar veo en SQLMonitor
DELETE clientes WHERE id_cliente=x AND id_tipo_cuenta=y AND tipo_cuenta=z

Error: el campo tipo_cuenta no existe en clientes
¿Alguna idea?

Migmam2 20-09-2006 18:35:52

¿Alguien ha probado el uso de parámetros en SQLQuery en Oracle?

jachguate 20-09-2006 20:00:37

En los campos persistentes del query de origen, para el campo Tipo_Cuenta podes modificar la propiedad ProviderFlags, quitando los valores pfInUpdate y pfInWhere, de esta manera el provider no tendrá problemas para construir la sentencia de borrado (o de actualización).

Hasta luego.

;)

Migmam2 21-09-2006 09:15:04

Muchas gracias. Probado y funciona!!

Saludos


La franja horaria es GMT +2. Ahora son las 10:55:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi