ODBC y borrado de datos
Publicado: Lun Mar 14, 2005 12:52 am
Hola,
Estoy mirando el tema de borrar datos de una tabla que está en una BD
Firebird y me surgen algunas preguntas.
1.- He visto que tanto el DataSource como el DataSet tienen la propiedad
lDisplayErrors, que nos indica si queremos mostrar los errores tal y
como los genera la base de datos, sin embargo, sólo me funciona
modificando la del Datasource. En el Dataset, ponga lo que ponga, no
hace caso.
2.- El Dataset es una consulta a dos tablas mediante un Join, con lo
cual supongo que todas las opciones de mantenimiento he de hacerlas
directamente sobre el Datasource, para indicarle de qué tabla quiero
borrar el dato.
3.- Para borrar un dato utilizo:
::oOdbcDataSource:Execute("DELETE FROM TABLA WHERE CODIGO=5","Error al
borrar")
El segundo parámetro se supone que tendría que salir al haber un error,
pero no sale nunca. Qué tipo de errores "Caza"?
4.- En ocasiones, dado las restricciones que tiene asignadas la propia
base de datos, me dá mensajes indicando que no se puede borrar.
Por ejemplo me dice:
Error al borrar
Class: HY000
Violation of FOREIGN KEY .....
En procedimiento ..... Línea ....
¿Cómo hago para capturar yo esos errores?
He probado con nLastError y cLastError del DataSource después del
Execute(), pero siempre me devuelven 0 y "" respectivamente.
5.- Qué es la propiedad lDinamicCursors del DataSource?
Un saludico,
Fredy
Estoy mirando el tema de borrar datos de una tabla que está en una BD
Firebird y me surgen algunas preguntas.
1.- He visto que tanto el DataSource como el DataSet tienen la propiedad
lDisplayErrors, que nos indica si queremos mostrar los errores tal y
como los genera la base de datos, sin embargo, sólo me funciona
modificando la del Datasource. En el Dataset, ponga lo que ponga, no
hace caso.
2.- El Dataset es una consulta a dos tablas mediante un Join, con lo
cual supongo que todas las opciones de mantenimiento he de hacerlas
directamente sobre el Datasource, para indicarle de qué tabla quiero
borrar el dato.
3.- Para borrar un dato utilizo:
::oOdbcDataSource:Execute("DELETE FROM TABLA WHERE CODIGO=5","Error al
borrar")
El segundo parámetro se supone que tendría que salir al haber un error,
pero no sale nunca. Qué tipo de errores "Caza"?
4.- En ocasiones, dado las restricciones que tiene asignadas la propia
base de datos, me dá mensajes indicando que no se puede borrar.
Por ejemplo me dice:
Error al borrar
Class: HY000
Violation of FOREIGN KEY .....
En procedimiento ..... Línea ....
¿Cómo hago para capturar yo esos errores?
He probado con nLastError y cLastError del DataSource después del
Execute(), pero siempre me devuelven 0 y "" respectivamente.
5.- Qué es la propiedad lDinamicCursors del DataSource?
Un saludico,
Fredy