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? |
¿Alguien ha probado el uso de parámetros en SQLQuery en Oracle?
|
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. ;) |
Muchas gracias. Probado y funciona!!
Saludos |
La franja horaria es GMT +2. Ahora son las 00:21:21. |
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