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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Talking Validar un DBEdit con delphi interbase

Hola compañeros.
He logrado conectar m,i base de datos en interbase a mi programa en Delphi, y usando una forma con DBEdit. Pero quiero hacer una consulta por un campo llave, y deseo saber si el campo que se esta entrando esta repetivo. Se que hay dos maneras de hacerlo según lo que he leido en el foro. El primero es capturando el error y el segundo que creo es el mejor es usando una consulta SQL en el evento OnValidate del DBEdit el caul ocurre antes de beforeInsert y que según otros enlaces funcionan mucho mejor

Como coloco la sentencia SQL, ese es mi problema en esta etapoa de aprendizaje. No tengo ni idea de como hacerlo. En pocas palabras entre en begin end del evento no se que colocar para revizar si la información existe y si existe me la traiga los demás datos a los DBEdit respectivos.

Agradeciendo de antemano la atención prestada y discupen si he colocado esta pregunta en el lugar equivocado, pues creo que es una Preguta de conexión de Datos con Delphi y no de Interbase
Responder Con Cita
  #2  
Antiguo 05-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

No sé por qué consideras mejor el lanzar una consulta SQL para la validación. Hacer eso significa una carga extra para la aplicación. En lugar de un viaje al servidor para la inserción, debes hacer dos.

No obstante lo anterior, yo he hecho pre-validaciones con el fin de que el capturista no me vea con malos ojos cuando le lance el mensaje de error luego de media hora de captura

Pero en ese caso lo que hago es pedirle los datos de la llave a parte en Edits normales. Cuando da clic en OK, uso esos datos para lanzar la consulta de búsqueda y entonces es cuando inserto el nuevo registro con la llave capturada y presento DBEdits para el resto de los datos.

// Saludos
Responder Con Cita
  #3  
Antiguo 05-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Saludos

Cita:
Empezado por servicomp
y el segundo que creo es el mejor es usando una consulta SQL en el evento OnValidate del DBEdit el caul ocurre antes de beforeInsert y que según otros enlaces funcionan mucho mejor
Nunca he utilizado ese evento para tal caso, ni uno DBedit para buscar un dato.

Yo utilizaria un Edit normal y al presionar enter puedes buscarlo de la sigte 2 formas:

1ro - Con el método Locate del DataSet.
Código Delphi [-]
if table1.Locate('campo1',Edit1.Text,[]) then begin//Si se encuentra
//rutinas
end else begin//De lo coantrario
//rutinas
end;

2do - Agregar un Query.
Código Delphi [-]
with Query1 do begin
  sql.Text:='Select Count(*) from tabla1 where campo1=:valor';
  ParamByName('valor').AsString:=Edit1.Text;
  If Fields[0].AsInteger >0 then begin //si por lo menos hay mas de un registro
    //rutinas
  end else begin //de lo contrario
   /rutinas
  end;
end;

Bueno, esta es una de las forma de hacerlo.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 05-08-2006
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
En interbase la mejor forma de hacer esto es programarlo en un trigger... en el trigger validas el dato que esta por ingresar y si no es válido entonces lanzas una bonita excepción que se propagará hasta el cliente que trato de hacer la operación... y con esto ya estará validado para que si despues quieres actualizar desde una página web u otro tipo de cliente ese trabajo ya estará hecho y la integridad de tus datos a salvo.
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #5  
Antiguo 05-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Wink

Bueno de todo hay que probra en la vida, probare con sus sugerencias que al parecer son las correctas y les digo como me fue

agradeciendo sus respuestas y si alguien quiere agragar una experiencia más, aqui la esperamos.
Responder Con Cita
  #6  
Antiguo 05-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
barado en el intento

bueno cambie mi forma de programar y mi DBEdit1 donde manejaba lo cambie por un Edit1. Asi que coohago para grabar un registro. Si cambio el InsertSQl en el IBDataset no se me activa el DataSet. como le digo que la información que estama en mi dbedit1 ya se encuentra en un Edit1.text.
Responder Con Cita
  #7  
Antiguo 05-08-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Cita:
como le digo que la información que estama en mi dbedit1 ya se encuentra en un Edit1.text.
Eeh?

Explicanos mejor y pon algo de codigo tuyo aqui. Ademas chequea bien la forma de escribir pues aveces te faltan letras o pones otras letras.

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 05-08-2006 a las 23:49:07.
Responder Con Cita
  #8  
Antiguo 06-08-2006
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 18
courtois Va por buen camino
en el evento BeforePost asigna el valor de tu Edit al campo
Responder Con Cita
  #9  
Antiguo 06-08-2006
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Com gusto mandare un codigo y mejorare mi escritura, gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Interbase Admin en delphi el_barto Firebird e Interbase 8 12-10-2007 01:52:57
Validar un Dbedit? kman Varios 10 13-03-2007 05:07:11
validar dbedit yeison Cristman Conexión con bases de datos 1 29-07-2006 22:55:56
Validar campo Date en Delphi 5 vick Conexión con bases de datos 6 28-10-2005 00:27:16
como validar datos en el evento onkeypress de un dbedit? viajero2015 Varios 1 01-02-2004 22:41:59


La franja horaria es GMT +2. Ahora son las 22:05:53.


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