Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Borrar Registro de una tabla con sql desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=81150)

Claudinho 16-10-2012 01:11:36

Borrar Registro de una tabla con sql desde Delphi
 
Hola a todos! Me gustaria ver si pueden ayudarme con esta consulta:
tengo una Tabla Estudiante_curso de la cual quiero borrar un registro, lo hago con este procedimiento:

procedure TForm11.Eliminar_curso();
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('DELETE FROM Estudiante_curso WHERE Estudiante_curso.CEDULA=:Cedulabox AND Estudiante_curso.COD_CURSO=:Cursobox;');
Query3.ParamByName('Cedulabox').AsString:=form11.ComboBox_cedula.Text;
Query3.ParamByName('Cursobox').AsString:=form11.ComboBox_curso.Text;
Query3.ExecSQL;
DbiSaveChanges(Query3.Handle);
ShowMessage('Datos eliminados');
end;

Ejecuta el procedimiento pero no borra nada de la tabla.
alguna ayuda?

roman 16-10-2012 01:17:22

¿Qué base de datos usas? ¿Cuál es el tipo de datos de los campos CEDULA y COD_CURSO?

// Saludos

Casimiro Noteví 16-10-2012 01:30:57

Cita:

Empezado por Claudinho (Mensaje 447187)
..


Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

Claudinho 16-10-2012 01:40:05

Borrar Registro de una tabla con sql desde Delphi
 
Gracias por responder Roman uso una base de datos Paradox 7 los campos CEDULA Y COD_CURSO son de tipo String estan definidos en los parametros del query como ftstring. Te agradezco cualquier ayuda

Caral 16-10-2012 01:59:20

Hola
En teoria deberia de funcionar, no le veo problemas.
Código Delphi [-]
procedure TForm11.Eliminar_curso();
 begin
 Query3.Close;
 Query3.SQL.text:= 'DELETE FROM Estudiante_curso WHERE Estudiante_curso.CEDULA = :Cedulabox AND Estudiante_curso.COD_CURSO = :Cursobox';
 Query3.ParamByName('Cedulabox').AsString:= ComboBox_cedula.Text;
 Query3.ParamByName('Cursobox').AsString:= ComboBox_curso.Text;
 Query3.ExecSQL;
 ShowMessage('Datos eliminados');
 end;
Saludos

Claudinho 16-10-2012 02:16:41

Borrar Registro de una tabla con sql desde Delphi
 
Si pienso que deberia funcionar pero debe haber algo que estoy pasando por alto pues no borra el registro de la tabla. Agradezco de antemano cualquier ayuda!

Caral 16-10-2012 02:17:55

Hola
Estas colocando dos condiciones, si no se cumple alguna de las dos no borrara nada.
Revisa que los combobox coincidan con los datos de los campos.
Saludos

Claudinho 16-10-2012 02:42:03

Borrar Registro de una tabla con sql desde Delphi
 
Los datos de parametros estan en ftString y los campos CEDULA y COD_CURSO tambien son String

Caral 16-10-2012 02:54:47

Hola
Si, pero son los correctos ?.
Estan esos mismos datos en las tabla ?.
Saludos

Claudinho 16-10-2012 03:06:57

Borrar Registro de una tabla con sql desde Delphi
 
Si en efecto estan esos dos Campos en la Tabla CEDULA y COD_CURSO

ecfisa 16-10-2012 04:08:26

Cita:

Empezado por Claudinho (Mensaje 447198)
Si en efecto estan esos dos Campos en la Tabla CEDULA y COD_CURSO

Hola.

Tal vez se te haya deslizado un espacio al final de algún item de los combos.

Proba de este modo:
Código Delphi [-]
 with Query3 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('DELETE FROM ESTUDIANTE_CURSO');
   SQL.Add('WHERE CEDULA = :CEDULABOX AND COD_CURSO = :CURSOBOX');
   ParamByName('CEDULABOX').AsString:= Trim(ComboBoxCedula.Text);
   ParamByName('CURSOBOX').AsString := Trim(ComboBoxCurso.Text);
   ExecSQL;
 end;

Saludos.

Claudinho 16-10-2012 04:51:37

Borrar Registro de una tabla con sql desde Delphi
 
Intente tu codigo Ecfisa pero tampoco borro el registro, de verdad no se que pasa..

ecfisa 16-10-2012 05:14:59

Hola Claudinho.

Cualquiera de los códigos de los mensajes #1 (exceptuando la llamada a DbiSaveChanges que no se que hace), #5 y #11, borrarán el o los registros que cumplan con la condición, así que el problema debe estar en otro lado...

Te hago dos consultas:
¿ Actualizas el TDataSet relacionado a el/los controles que visualizan los registros, luego del borrado ?
¿ Estas haciendo uso de CachedUpdates ?

Saludos.

Claudinho 16-10-2012 05:30:11

Borrar Registro de una tabla con sql desde Delphi
 
tengo el cachedUpdate en true aparte de eso no hago mas actualizaciones

Claudinho 16-10-2012 06:19:15

Borrar Registro de una tabla con sql desde Delphi
 
Gracias a todos por tomarse el tiempo para responderme el error era bien tonto de mi parte como dijo caral estaba recogiendo datos de donde no era, ya que comboBoxcurso no tenia la data de COD_CURSO, pero aprendi bastante con este hilo asi que muchas gracias, no me hubiese dado cuenta del error yo solo

ecfisa 16-10-2012 06:28:35

Cita:

Empezado por Claudinho (Mensaje 447205)
tengo el cachedUpdate en true aparte de eso no hago mas actualizaciones

Hola.

Me alegra que lo hayas solucionado :)

Pero estando CachedUpdates activado, para que cualquier acción quede plasmada, tendrías que usar el método ApplyUpdates.

No utilizo BDE pero en la ayuda de Delphi (TQuery -> Methods -> ApplyUpdates -> Delphi example) tenés un ejemplo del uso.

Saludos. :)

Claudinho 16-10-2012 18:01:08

Borrar Registro de una tabla con sql desde Delphi
 
Gracias Ecfisa entonces tu recomendacion seria dejar el CachedUpdates en false?

ecfisa 16-10-2012 18:26:28

Hola Claudinho.

Si no lo estas utilizando, sería conveniente.

Saludos.


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

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi