Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2004
cesar_picazo cesar_picazo is offline
Miembro
 
Registrado: ene 2004
Posts: 65
Poder: 21
cesar_picazo Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 28-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 28-02-2004
cesar_picazo cesar_picazo is offline
Miembro
 
Registrado: ene 2004
Posts: 65
Poder: 21
cesar_picazo Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 28-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por cesar_picazo
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.
Te recomiendo la lectura de un libro sobre bases de datos relacionales y el estándar SQL. A grandes razgos, solo te comento que en una base de datos relacional no existe la "posición" de un registro.

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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:19:46.


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
Copyright 1996-2007 Club Delphi