Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2013
Kannon Kannon is offline
No confirmado
NULL
 
Registrado: dic 2013
Posts: 14
Poder: 0
Kannon Va por buen camino
Obtener contenido de celda en DBGrid

Bueno pues tengo una base de datos llamada "Ciudadanos " en la cual hay una tabla llamada "personas" en esta tabla se muestras los campos: código, nombre, edad y genero. en la aplicación de c++ builder (utilizo el XE5) uso un DBGrid para mostrar las búsqueda de un Query.

Una vez realizada esta búsqueda y mostrado su resultado en el DBGrid, cuando se da clic derecho sobre algún registro aparece un Popup en el cual se dan las opciones de: "Modificar Usuario", "Eliminar Usuario" y "Enviar E-mail"( Esto pienso hacerlo mediante Indy SMTP ).

Mi problema es que para poder modificar o eliminar un registro necesito saber en que fila fue el clic, para con ese numero de fila desplazarme hasta la columna 1 ( donde se encuentra el código ) y ahora con este valor poder ejecutar en el query la sentencia: DELETE * FROM personas WHERE idCiudadano= (el valor que recupero del DBGrid). He estado viendo algunas funciones de este pero la verdad no encuentro la forma.

Para la conexión a base de datos ( La cual esta hecha en MySql ) uso: Database, Datasource, Query. Tenia en mente un codigo parecido a este:

Código:
try
	 {
	   Query1->Close();
	   Query1->SQL->Clear();
	   Query1->SQL->Add("DELETE * FROM personas WHERE idCiudadano='"+DBGrid1->Fields->+"'");
	   Query1->Active=true;

	   if(Query1->RecordCount==0)
		{
		  MessageDlg("Error al eliminar el usuario",mtError,TMsgDlgButtons()<< mbOK,0);
		  return;
		}
	 }
	catch(...)
	 {
	   MessageDlg("Error de Eliminación",mtError,TMsgDlgButtons()<< mbOK,0);
	   return;
	 }
	MessageDlg("Usuario Eliminado",mtInformation,TMsgDlgButtons() << mbOK,0);
Pero la verdad no encuentro la manera de poder lograrlo, les agradezco mucho por la ayuda que puedan brindarme ( soy nuevo en el foro y principiante en delphi, espero haberme explicado bien )
Responder Con Cita
  #2  
Antiguo 18-12-2013
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Código Delphi [-]
Query1->SQL->Add("DELETE * FROM personas WHERE idCiudadano='"+DBGrid1->datasource->dataset->fieldbyname('codigo')->asstring+"'");

Bueno creo q mas o menos asi. No manejo C++ buider..

Saludos
Responder Con Cita
  #3  
Antiguo 18-12-2013
Kannon Kannon is offline
No confirmado
NULL
 
Registrado: dic 2013
Posts: 14
Poder: 0
Kannon Va por buen camino
Cita:
Empezado por Caminante Ver Mensaje
Código Delphi [-]
Query1->SQL->Add("DELETE * FROM personas WHERE idCiudadano='"+DBGrid1->datasource->dataset->fieldbyname('codigo')->asstring+"'");

Bueno creo q mas o menos asi. No manejo C++ buider..

Saludos

Pues la verdad es que me ha dado resultado, es increíble. De verdad te lo agradezco.
Responder Con Cita
  #4  
Antiguo 18-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Kannon.

También podrías hacer:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (MessageBox(Handle,
                 "¿Desea eliminar el registro?","",
                 MB_YESNO + MB_ICONQUESTION)== IDYES) {
    Query1->Close();
    Query1->SQL->Text = "DELETE FROM PERSONAS WHERE IDCIUDADANO = :PID";
    Query1->ParamByName("PID")->Value = 
      DBGrid1->DataSource->DataSet->FieldByName("IDCIUDADANO")->Value;
    Query1->ExecSQL();  
  }
}
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Contenido de una celda de un DBGRid patxim SQL 8 24-05-2012 08:18:38
usar contenido de una celda DBGrid federicorl Varios 4 16-12-2006 00:05:57
DBGrid. Contenido de celda en edicion ManelC Varios 2 06-07-2006 23:01:18
Saber el contenido de una celda en un Dbgrid en Delphi 7 Kivan Varios 2 30-05-2005 18:56:34
Acceder al contenido de una celda en un DBGRID... Sinaloense OOP 2 22-09-2004 10:01:06


La franja horaria es GMT +2. Ahora son las 01:56:21.


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