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 17-06-2007
drakkon drakkon is offline
Miembro
 
Registrado: jun 2007
Posts: 21
Poder: 0
drakkon Va por buen camino
Question Ayuda con los DBGRIDS

Que tal amigos, otra ves aqui necesitando de su yuda. Me encuentro trabado en mi proyecto. Voy a tratar de explicar mi problema.

Estoy trabajando en Delphi 6 y mi BD es de MySQL. Tengo en mi aplicación un form donde he puesto un DBGrid enlazado con un DataSource, mismo que comparte con un TQuery. En vez de utilizar un DBNavigator he creado yo mismo un panel de bitbtn's con los que puedo recorrer a traves de todos los registros de mi tabla, ademas de añadir un botón de INSERTAR, ELIMINAR Y GUARDAR. Cuando tengo registros en mi tabla ("Autorizadas"), no encuentro ningún problema a la hora de modificar algun registro o inclusive de eliminarlo. El problema radica a la hora de querer insertar uno nuevo en mi tabla a traves del DBGrid. Las columnas estan directamente relacionadas con los campos que necesito. Alguien podría ayudarme por favor, se lo agradeceré muchisimo.
Responder Con Cita
  #2  
Antiguo 17-06-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
En vez de utilizar un DBNavigator he creado yo mismo un panel de bitbtn's
Podrias hacerlo con el componente TActionList (o TActionManager) y crear standard dataset actions, asi te ahorras escribir codigo,
Cita:
El problema radica a la hora de querer insertar uno nuevo en mi tabla a traves del DBGrid
Si, pero hay q explicar cual esl problema, no solo donde radica, en este foro en concreto te puedo asegurar q hay muy pocos adivinos
__________________
¿Microsoft? No, gracias..

Última edición por Delfino fecha: 17-06-2007 a las 12:54:18.
Responder Con Cita
  #3  
Antiguo 17-06-2007
drakkon drakkon is offline
Miembro
 
Registrado: jun 2007
Posts: 21
Poder: 0
drakkon Va por buen camino
Question

En mi DBGrid tengo 3 columnas (clave, nombre, relacion) que estan relacionadas directamente con los campos.

Intento poner este código en un BitBtn para guardar el nuevo registro que agregue en el DbGrid, y puedo hacer referencia a lo que haya escrito en la 1er. columna, pero no se cómo decirle que guarde lo que escribí en las demas columnas.

Código Delphi [-]
Query3.Close();
Query3.SQL.Clear();
Query3.SQL.Add('SELECT *FROM clientes1 WHERE clave_cli='+DbGrid1.SelectedField.Text+';');
Query3.OpenDatabase();
Query3.Open();
if Query3.Eof=false then begin
  Application.MessageBox('Clave Duplicada','ERROR',MB_ICONERROR or MB_OK);
end;
 
else begin
     Query3.Close();
     Query3.SQL.Clear();
     Query3.SQL.Add('INSERT INTO clientes1 (id_persona,nombre,relacion) VALUES (:iddpersona,:nombre,:relacion)');
     Query3.ParamByName('iddpersona').AsString:=DbGrid1.SelectedField.Text;
     Query3.ParamByName('nombre').AsString:=  // es aqui donde no sé cómo hacer referencia a las demas columnas del Grid.
     Query3.ParamByName('relacion').AsString:= // es aqui donde no sé cómo hacer referencia a las demas columnas del Grid.
     Query3.ExecSQL;
end;

Es precisamente éste el problema que tengo. Espero me haya explicado mejor y puedas ayudarme por favor.

Saludos.

Última edición por drakkon fecha: 17-06-2007 a las 19:31:13.
Responder Con Cita
  #4  
Antiguo 17-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Estas mezclando 2 conceptos y por eso no sale como quieres.

En un sql

- Si pones :id_Persona, delphi mira si hay un campo llamado de esa forma exacta, si lo hay, no puedes usar Parambyname para darle un valor, sino FieldByName.

- Sip pones :iddPersona, como no hay ningún campo que se llame así en la tabla, entonces, debes usar ParambyName para darle valores.

Yo suelo seguir una norma: Acceder a todos los campos con FieldByName o a todos los campos con ParamByname. La razón es muy simple, cuando vas a modificar el programa, ese pequeño detalle se te escapa y el programa no va como esperas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 18-06-2007
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Ayuda con DBGrids

Hola:

Una variante que me parece que pudieras probar es utilizar un formulario para las tareas tanto de insertar como de modificar y no trabajar directamente en el DBGrid puesto que a veces el usuario sin darse cuenta modifica datos y luego no sabe el que tenia, yo en mi caso prefiero ponerle a la propiedad Option/dgEditing a Falso y cuando inserte o modifique con ese otro formulario ejecuto las Query correspondientes a esas 2 operaciones.

Saludos
Luis Garcia
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
Títulos en DbGrids Viky Varios 4 01-06-2007 02:08:07
Vincular dos DBGrids !!! TriLoCBA OOP 2 07-02-2006 17:39:32
Unir dos DBgrids Nbull Conexión con bases de datos 2 02-02-2006 09:19:00
DBGrids en Firebird RONPABLO Conexión con bases de datos 0 20-10-2004 06:57:21
Celdas en DBGrids karocs Conexión con bases de datos 1 31-08-2004 13:24:13


La franja horaria es GMT +2. Ahora son las 19:59:29.


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