Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 22
TJose Va por buen camino
para el campo NIT

veo que lo has definido como clave primaria
Código SQL [-]
ALTER TABLE PERSONAS ADD CONSTRAINT PK_PERSONAS PRIMARY KEY (NIT);
ya con esto no se podrán repetir (por estar definido como primary key)

También puedes hacer que no se repitan valores en campos que no son clave primaria con la sentecia siguiente
Código SQL [-]
alter table Etapas add constraint unq_Etapas unique (Etapa);

En este caso no podrán ingresarse registros donde el campo Etapa se repita.

Saludos
TJose
Responder Con Cita
  #2  
Antiguo 23-07-2007
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
agradeciendo de nuevo la colaboración al problema

hola compañeros


De nuevo gracias por su colaboración.

Bueno, queremos que cuando un nuevo NIT ingrese al sistema, primero verifique si se encuentra en la base de datos; si no se encuentra se introducen todos los datos, pero si se encuentra, debemos hacer llegar los datos a la pantalla bien sea para su actualización ó la eliminación.


agradeciendo de antemano la atención prestada
Responder Con Cita
  #3  
Antiguo 23-07-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Creeme que la que te comentaron es la manera correcta, (indice unico).

Debes manejar la excepción de clave duplicada.

Para lograr lo que quieres puedes hacer lo siguiente:

1 lees el NIT
2 Inicias una transacción (StartTransaction).
3 insertas el NIT (INSERT INTO TABLA (NIT) AS (:NIT)
4 Ejecutas el SQL
5 Si hay error = NIT (Repetido ó invalido) Aqui puedes leer los datos para modificar ó eliminar.
6 Haces un RollBack sobre la transacción (2) (desaparece la inserción y continuas)
7 pides los demás datos
8 Guardas todo (ahora sí commit).
__________________
Sitrico

Última edición por sitrico fecha: 23-07-2007 a las 17:27:06.
Responder Con Cita
  #4  
Antiguo 23-07-2007
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
ok asi me lo omaginaba, lo haremos y te comentare por este medio que problemas se presentaron


agradeciendo de antemano la atención prestada
Responder Con Cita
  #5  
Antiguo 01-08-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Tu peo no es de base de datos si no de aplicacion.

Lo que quieres es si existe el nit que lo muestre si no que lo inserte.

haces un select sobre la tabla donde el edit.text sea igual al nit. Si encuentras una considencia la muentra si no ya estas insertando cuando edites cualquie campo dentro d el abase de datos.

Este trabajo s eme hace mas facil ya que uso ibo y los dbedit tiene un campo uq ese llama para el cual puedo usar dentro del sql y el se encarga de pasarlo automaticamente.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 12-08-2007
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Y como lo hao desde un Edit

Hola Compañeros

bueno como les habia dicho al principio del enlace, mi tabla es pequeña, solo para aprendizaje.

El ejemplo que estamos realizando es el del tutor de Paradox a interbase, que me ha servidor demasiado. todo muy bien cuando usamos un DbGrid, pero queremos Usar unos Edit

Como hago para grabar la información en mi tabla

En el Ibdataset1 en la propiedad InsertSQL inserte el siquiente codigo
Código SQL [-]
Insert To Personas (clavepersona, nombre, apellidos, telefono, email)
Values
(:Edit1.Text, :Edit2.Text, :Edit3.Text, :Edit4.text, :Edit5.Text)

Supuestamente me pasa los datos de los Edit a la tabla.

Pero en mi boton de grabar como lo hago

Código PHP:
procedure TForm1.Button2Click(SenderTObject);
begin
   
Que colocamos aquicomo hago para que me almacene la información 
      que se encuentra en los Edit
}  
end
Agradeciendo amigos la atención prestada
Responder Con Cita
  #7  
Antiguo 13-08-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
No te compliques la vida si usas el IBDataset,
Entra solo la propiedad SelectSQL, lo demas se genera automaticamente pinchando con el boton derecho sobte el componente y la opcion Dataset Editor, con el asistente se generan las demas SQLs, asi podras utilizar los metodos insert, edit, post etc. del dataset..
__________________
¿Microsoft? No, gracias..
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejando manejadores... Berto2003 Varios 5 06-03-2007 10:38:40
Manejando la tabla ASCII en C aeff C++ Builder 4 22-01-2007 18:02:47
Problema manejando excepciones David OOP 1 28-07-2006 19:17:48
problema manejando datos =( CI>140 Conexión con bases de datos 4 22-09-2003 09:56:16
problemas manejando campos CI>140 Conexión con bases de datos 1 20-09-2003 15:59:40


La franja horaria es GMT +2. Ahora son las 13:06:04.


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