FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
delete con DBExpress
Buenas tardes.
Estoy realizando una aplicacion con DBExpress con Delphi 6 conectandome a una DB de (Interbase) Firebird 1.5, el problema que tengo o la duda es, como puedo hacer para eliminar un registro de la DB, el problema con el que me encontre es que si tengo registros duplicados, despues para elimar un registro me envia un mensaje de error que no se puede eliminar mas de un registro y me imagino que el problema va por el aspecto de que el registro 1 y el registro 10 de la tabla, estan duplicados tienen los mismos valores y este es el motivo del mensaje. No se si existe alguna forma de decirle a Firebird elimina el registro 1. O bien si esto no es posible en Firebird y DbExpress, que me recomiendan para utilizar una especie de campo autonumerico, con el fin de que no se presente otra ves el problema de que DBExpress no pueda eliminar un registro o antes de que se almacene el registro me informe que el campo ya existe("no estoy utilizando un indice ya que no es necesario en este momento crear ninguno"), Nota con visor de Db de Interbase y Firebird si pudé borrar el registro que esta duplicado. Espero alguien me sepa que hacer. |
#2
|
||||
|
||||
pues si todos los campos son iguales, no podes borrar un solo registro desde ningun lado. Me imagino que DBExpress se basa, de cualquier forma, solo ne la llave primaria, que en teoria no podria ser igual en ninguno de los dos...
Lo ideal es que crees una llave primaria (si no la necesitas, usa un número obtenido de generator). Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Como asigno el generador a un campo
Ya nada más para terminar, en los componentes de DBExpress en donde se le asigna que se utilizarà un generado en un determinado campo, esto es:
Campo ID propiedad generated, en los componente de IB si existia un campo para asignarle un generador, pero en DBexpress no lo encuentro. PD. Que malo que no se pueda crear una tabla sin Indices y con campos duplicado, estaria bien que se le pudiera decir que borre el registro que esta en la posiciòn X sin importa si existe otro igual. |
#4
|
||||
|
||||
Cita:
Quizas la unica base de datos que tiene una forma de saltarse este asunto es Oracle con su rowid Por otro lado, que se puede crear la tabla, que te diré... vos mismo has visto que si se puede.... el problema está en manipularla... Por último, para asignar el valor al campo llave te sugiero que te valgas del evento OnNewRecord del DataSet. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|