Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Insertar Datos a un campo de la base de datos desde un DBEdit

Saludos Amigos,

Me encuentro programando un formulario en el cual tengo un DBEdit, con información del número de identificación personal, el DBEdit está conectado a la tabla cliente y el campo es cli_cod, este datito quiero guardarlo en un campo (cli_cod) de otra tabla llamada soporte. Uso DBNavigator, para el proceso de insertar los datos y aqui genero el siguiente código:

begin
if Button in [nbPost] then
with Unit_DataSoporte.DataModule_Soporte.Table_Soporte do
begin
Unit_DataSoporte.DataModule_Soporte.Table_Soporte.Active := true;
Filter := 'cli_cod=' + cliente;
Filtered := True;
end;

end;

Estimo que debería guardarlo pero no sucede así. Alguien podría ayudarme. Mil gracias de antemano.
f. chicatronic
Responder Con Cita
  #2  
Antiguo 10-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo.
Primero: tienes un dbedit conectado a una tabla.
Segundo: quieres pasar el valor de ese dbedit a otra tabla.
tercero: Tienes un dbnaviagtor que esta enlazado a la segunda tabla?.
Cuarto: haces un filtro a la segunda tabla?, para que?
Quinto: Indicas si un buton?, que es eso?, esta en modo post?
Bueno, no lo entiendo, la verdad me parece muy complicado para una operacion tan simple.
Saludos
Responder Con Cita
  #3  
Antiguo 10-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Question

Saludos Caral,
Mil gracias por tu tiempo, y atención a mi solicitud. Talvez si me explico mejor: Tengo dos tablas en la base de datos, una llamada cliente y otra llamada soporte. En la forma de Delphi la idea es ingresar el número de identificación del cliente (DBEdit conectado a la tabla cliente), pra luego mandarle a buscar a ver si existe este cliente, como si existe, entonces ahora este número de identificación debo tomarlo del DBEdit para guardarlo en la otra tabla soporte. Es decir en la tabla soporte tengo varios registros con un mismo número de identificación.

Uso el DBNavigator porque con este al hacer click en el nbpost, se insertan los datos en la tabla soporte del resto de datos, como apellidos, nombres, etc. Si se hizo click en el visto, entonces guardar el DBEdit_IdCliente.text en el campo cli_cod. Por favor si hay otra manera como podría hacerlo.

Nuevamente mil gracias de antemano y muchos saludos.
Responder Con Cita
  #4  
Antiguo 10-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sinceramente sigo sin entender, pero voy a tratar de hacer algo, no se si servirá.
Código Delphi [-]
begin
if Button in [nbPost] then
with Unit_DataSoporte.DataModule_Soporte.Table_Soporte do
begin
Unit_DataSoporte.DataModule_Soporte.Table_Soporte.Active := true;
Table_Soporte.Filter := 'cli_cod=' + cliente; // AQUI ME QUEDO CON LA DUDA? QUE ES CLIENTE?
Filtered := True;
end;

end;
Saludos
Responder Con Cita
  #5  
Antiguo 10-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Guardar dato de un DbEdit a un campo en la base de datos

Mil Gracias Caral,

La idea es tomar el campo de una tabla para guardarlo en otra, solo que este campo de esta tabla es recuperado en el DBEdit, porque éste está conectado a la tabla cliente, a travez de un DataSource. Intente aumentandole al Filter, Unit_DataSoporte.DataModule_Soporte.Table_Soporte.Filter := 'cli_cod = ' + cliente; no me inserta tampoco. Cliente es una variable de tipo string que almacena lo que tengo en el DBEdit, es decir cliente := DBEdit_IdCliente.text.

Es una gran ayuda poder contar contigo, muchos saludos.
Responder Con Cita
  #6  
Antiguo 10-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdon pero lo que entiendo de tu codigo es:
Buscas el igual que el dbedit en la tabla soporte, por medio de un filtro, a la vez que lo gravas en la misma tabla con el mismo nombre.
No entiendo la razon, la verdad me quedo corto.
Saludos
Responder Con Cita
  #7  
Antiguo 10-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Wink Insertar Datos a un campo de la base de datos desde un DBEdit

Hola Caral,

Gracias por tu atención, olvidemonos del filtro la idea es que tengo dos tablas la tabla cliente, y la tabla soporte. Un cliente tiene varios soportes, por esto el campo cli_cod es clave primaria en la tabla cliente y es la clave foránea para la tabla soporte. Es por esto que necesito registrar el dato de la identificación del cliente en esta tabla soporte.

Perdón, quiza no me explico bien. Si nos olvidamos del filtro la idea sería coger el dato de la una tabla que se presenta en el DBEdit y guardarlo en el campo de la tabla soporte, el momento que pongo el visto en el DBNavigator. Si hay alguna otra manera que por fa se te ocurra.

Muchas gracias y saludos
Responder Con Cita
  #8  
Antiguo 11-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vamos a ver, recuerda que soy novato, asi que no esperes mucho.
Para empezar, tenemos una tabla clientes (al que pertenece el dbedit, el nombre cliente es una variable tipo string, el cual contendra ese valor.)
El dbnavigator esta enlazado a la tabla soporte (Table_Soporte).

Lo que se pretende es que cuando se le de click al dbnavigator (en la opcion post), este haga un post en la tabla soporte y que cambie el valor del campo cli_cod de esa tabla.

Ahora veamos el codigo:
Primero, (para mi) se necesita que la tabla este o bien en edit o bien en insert antes de hacer un post.
Esto lo haria en un boton independiente (para ver que pasa).
Se pondria en edit o en insert el dbnavigator y en el evento onclick del boton pondria esto:
Para empezar creo que la tabla Table_Soporte ya tiene que estar activa, ya que si no es asi, como se puede hacer un edit o un insert?.
Código Delphi [-]
begin
// aqui le preguntamos si esta en edit o en insert la tabla.
If (Unit_DataSoporte.DataModule_Soporte.Table_Soporte.State = dsEdit) or (Unit_DataSoporte.DataModule_Soporte.Table_Soporte.State = dsInsert) then
     begin
with Unit_DataSoporte.DataModule_Soporte.Table_Soporte do
begin
Unit_DataSoporte.DataModule_Soporte.Table_Soporte.Filter := 'cli_cod=' + cliente; // filtramos y encontramos el codigo Soporte = al codigo Cliente.
Filtered := True; // indicamos que filtre
Unit_DataSoporte.DataModule_Soporte.Table_Soporte.Filter := Cliente; // le indicamos que el campo cli_cod de soporte sea igual que cliente.
Unit_DataSoporte.DataModule_Soporte.Table_Soporte.post; // lo grabamos.
end;

end;
Pura especulacion, pero seguro que te dara mucha mas idea del asunto.
Saludos
Responder Con Cita
  #9  
Antiguo 11-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Otra opción distinta:

Usa un TDBLookUpComboBox en la ventana de "soporte". En el combo se mostrará una lista con todos los clientes dados de alta en la tabla cliente y permitirá guardar el código de ese cliente en la tabla soporte.

De no existir el cliente, el DBlookupcomboBox se mostrará vacío.

Propiedades del dblookupcombo en el inspector de objetos:
Datasource (tabla soporte, su Datasource correspondiente)
Field (tabla soporte, el campo que guardará el código de cliente elegido en el combo)

ListSource (la tabla cliente, su datasource correspondiente)
ListField (tabla cliente, nombre del cliente. Podrías poner varios campos separados por punto y coma)
KeyField (tabla cliente, el campo que hace de clave primaria)

Si necesitas cambiar por código fuente el cliente mostrado en el Lookupcombo, puedes hacer:
Código Delphi [-]
  dblookupcombo.keyvalue := 3 ; // seleccionar en el combo, el cliente con código 3

Ten cuidado con el filtrado de la tabla (propiedad Filter), ya que si se encuentra filtrada, no encontrará el código que queremos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 11-12-2007 a las 03:23:59.
Responder Con Cita
  #10  
Antiguo 11-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que bueno, ya vino un maestro.
La verdad ya te esperaba Lepe, ya no sabia que hacer.
Te recomiendo la opción de lepe, sigue sus instrucciones, así aprendí yo.
Bueno, esta bien, sigo aprendiendo.
Saludos
Responder Con Cita
  #11  
Antiguo 12-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Smile Insertar Datos a un campo de la base de datos desde un DBEdit

Solo quería darte las gracias por tu apoyo, fue de gran ayuda
Responder Con Cita
  #12  
Antiguo 12-12-2007
saltamirano saltamirano is offline
Miembro
 
Registrado: jun 2007
Posts: 18
Poder: 0
saltamirano Va por buen camino
Smile Insertar Datos a un campo de la base de datos desde un DBEdit

Hola Maestro de Maestros,

Quería darte las gracias por tu ayuda. Utilizo el Lookupcombo y ya inserta en la base de datos el cli_cod. Muchas 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
Crear base de datos y cargar datos desde delphi Albano MySQL 4 17-05-2007 20:01:18
Añadir datos desde una base de datos a un TListBox proyecto Conexión con bases de datos 1 21-11-2006 07:01:19
Insertar datos en Base de Datos aoiTo C++ Builder 2 18-06-2006 15:42:43
Insertar archivo en base de datos!!!!! DB-ADO Conexión con bases de datos 2 01-04-2005 23:59:15
como enlazo una base de datos acces con un DBEdit Bitbanner Conexión con bases de datos 1 17-01-2005 18:42:51


La franja horaria es GMT +2. Ahora son las 02:16:20.


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