Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2012
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Borrar registro desde un Edit

Bueno, ahora necesito ayuda para borrar un registro de una tabla de Alumnos por DNI.
Lo que yo hice personalmente fue:
Primero realizar una consulta con un SELECT, para saber si el registroa eliminar existe y, luego de ser que exista un DELETE, quisiera saber por que me dice que hay pocos parametros se esperaba uno.

El codigo que tengo en el boton de Buscar es el siguiente:

Código SQL [-]
Query1->Close();
  Query1->SQL->Text = "SELECT DNI FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
  Query1->ParamByName("PDNI")->AsString = Edit1->Text;
  Query1->Open();
  bool registrado = !Query1->IsEmpty();
  Query1->Close();
  if(registrado){
  AnsiString Consulta;
  Consulta="DELETE DNI, Cod_Localidad, Nombreyapellido from Alumno where DNI=Text";
  Query1->SQL->Clear();
  Query1->SQL->Add(Consulta);
  Query1->ExecSQL();
  MessageBox(Handle, "Los datos fueron borrados con exito",
    "AVISO", MB_ICONINFORMATION + MB_OK);
  }
   else
   {
     MessageBox(Handle, "El alumno no existe",
    "AVISO", MB_ICONINFORMATION + MB_OK);
     Table1->Cancel();
     }

Ademas tengo un DBGrid en el formulario, quisiera que se actualizara al entrar al mismo, lo puse para que se vean los alumnos registrados actualmente.
Tengo un TTable, un Query, y un DataSource.
Muchas gracias
Responder Con Cita
  #2  
Antiguo 09-11-2012
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.

Es incorrecta la sintáxis SQL de la sentencia de borrado.

Código:
void __fastcall TForm1::btnBorrarClick(TObject *Sender)
{
  Query1->Close();
  Query1->SQL->Text = "SELECT DNI FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
  Query1->ParamByName("PDNI")->AsString = Trim(Edit1->Text);
  Query1->Open();
  if (!Query1->IsEmpty()) {
    Query1->Close();
    Query1->SQL->Text = "DELETE FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
    Query1->ParamByName("PDNI")->AsString = Trim(Edit1->Text);
    Query1->ExecSQL();
    Table1->Refresh();  // (Si es que el DBGrid está conetado con Table1)
     MessageBox(Handle, "Los datos fueron borrados con exito",
    "AVISO", MB_ICONINFORMATION + MB_OK);
  } else
     MessageBox(Handle, "El alumno no existe","AVISO",
      MB_ICONINFORMATION + MB_OK);
}
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-11-2012
jpgonzalez jpgonzalez is offline
Miembro
 
Registrado: feb 2010
Posts: 121
Poder: 15
jpgonzalez Va por buen camino
Cita:
Empezado por giulichajari Ver Mensaje
Bueno, ahora necesito ayuda para borrar un registro de una tabla de Alumnos por DNI.
Lo que yo hice personalmente fue:
Primero realizar una consulta con un SELECT, para saber si el registroa eliminar existe y, luego de ser que exista un DELETE, quisiera saber por que me dice que hay pocos parametros se esperaba uno.

El codigo que tengo en el boton de Buscar es el siguiente:

Código SQL [-]
Query1->Close();
  Query1->SQL->Text = "SELECT DNI FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
  Query1->ParamByName("PDNI")->AsString = Edit1->Text;
  Query1->Open();
  bool registrado = !Query1->IsEmpty();
  Query1->Close();
  if(registrado){
  AnsiString Consulta;
  Consulta="DELETE DNI, Cod_Localidad, Nombreyapellido from Alumno where DNI=Text";
  Query1->SQL->Clear();
  Query1->SQL->Add(Consulta);
  Query1->ExecSQL();
  MessageBox(Handle, "Los datos fueron borrados con exito",
    "AVISO", MB_ICONINFORMATION + MB_OK);
  }
   else
   {
     MessageBox(Handle, "El alumno no existe",
    "AVISO", MB_ICONINFORMATION + MB_OK);
     Table1->Cancel();
     }

Ademas tengo un DBGrid en el formulario, quisiera que se actualizara al entrar al mismo, lo puse para que se vean los alumnos registrados actualmente.
Tengo un TTable, un Query, y un DataSource.
Muchas gracias
Tal como dice ecfisa, el delete borra la tupla entera de la tabla, es decir, la linea completa.
No puedes seleccionar que columnas borrar...
Para borrar la linea completa usas:
"DELETE FROM ALUMNO WHERE ""DNI"" = :""PDNI""";

Si lo que quieres es borrar los datos de alguna columna, pero dejar la fila en la BBDD tendiras que usar un UPDATE, seteando los campos que deseas borrar con algun valor por defecto.

Espero te haya servido.
Abrazo!
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
Borrar Registro de una tabla con sql desde Delphi Claudinho SQL 17 16-10-2012 18:26:28
Borrar un registro desde un combobox con php+mysql enecumene PHP 6 22-01-2007 16:05:42
Borrar lineas detalle al borrar registro maestro akinom38 Conexión con bases de datos 3 11-01-2006 10:38:07
Comparar un registro de un edit con un registro de una tabla en una consulta Damian666 SQL 10 01-10-2005 00:43:20
borrar registro desde un query fabian20s Conexión con bases de datos 2 25-03-2005 13:48:50


La franja horaria es GMT +2. Ahora son las 04:20:49.


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