Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Borrar datos sql (https://www.clubdelphi.com/foros/showthread.php?t=79481)

ttotto 10-07-2012 18:22:24

Borrar datos sql
 
Buenos dias todos

tengo el siguiente problema : deseo borrar un dato , cuando lopongo fijo si se borrar

ahora lo quiero hacer por medio de un edit , mi codigo es este
Código Delphi [-]

SQLQuery1.SQL.Text:='delete from departamento where depto01=10';

ya tengo el edit pero no se com oponer el codigo para borrar a traves de este

de antemano gracias por su ayuda

Casimiro Notevi 10-07-2012 18:44:30

Cita:

Empezado por ttotto (Mensaje 437054)
tengo el siguiente problema : deseo borrar un dato , cuando lopongo fijo si se borrar
ahora lo quiero hacer por medio de un edit , mi codigo es este
Código Delphi [-]SQLQuery1.SQL.Text:='delete from departamento where depto01=10';
ya tengo el edit pero no se com oponer el codigo para borrar a traves de este
de antemano gracias por su ayuda

Pues igual que se te explicó en el otro hilo, ejemplo, tienes una tabla llamada 'unatabla' y quieres borrar el cliente cuyo campo 'codigo' escriba el usuario en el tedit edit1

Código Delphi [-]
query.sql.text := 'delete from unatabla where codigo='+IntToStr(edit1.text);


Por cierto, ¿antes era ms sql server y ahora mysql?

oscarac 10-07-2012 18:48:53

podrias hacer algo como esto

Código Delphi [-]
 
qryBorrar.Clear
qryBorrar.Sql.Add('delete from departamento where depto01 = : Dpto'
qryBorrar.Sql.Parameters.ParambyName('Dpto').value := edit1.text
qryBorrar.ExeSql;

ttotto 10-07-2012 18:54:07

Hola estimado Casimiro.

te agradesco tu invaluable ayuda

ya puse el codigo y memanda el siguiente error

there is no averloaded version of 'inttostr' that can be called with these arguments

newtron 10-07-2012 18:54:49

Cita:

Empezado por Casimiro Notevi (Mensaje 437056)
Por cierto, ¿antes era ms sql server y ahora mysql?

No no... es myserver. :p

Casimiro Notevi 10-07-2012 19:09:36

Cita:

Empezado por ttotto (Mensaje 437061)
Hola estimado Casimiro.
te agradesco tu invaluable ayuda
ya puse el codigo y memanda el siguiente error
there is no averloaded version of 'inttostr' that can be called with these arguments

Pues como siempre, te recomiendo que pongas tu código aquí, ya que nuestra bola de cristal está averiada y con los recortes no nos da para repararla :)

Por cierto, la opción de oscarac, con parámetros, es la más profesional, segura y adecuada ;)




Cita:

Empezado por newtron (Mensaje 437062)
No no... es myserver. :p

No sabía que MS hubiese comprado Oracle :p

ttotto 10-07-2012 19:20:09

Casimiro:

copie el codigo com oesta en el ejemplo y manda el siguiente error

undeclared identifier:'parameters'

ttotto 10-07-2012 19:22:05

perdon tienes razon

mi codigo
Código Delphi [-]
 SQLQuery1.SQL.Add('delete from departamento where depto01=depto');
   SQLQuery1.SQL.Parameters.ParamByName('depto').Value:=Edit1.Text;

me manda el error

undeclared identifier:'parameters'

oscarac 10-07-2012 19:26:22

depto01=depto

despues del igual debe haber dos puntos :

ttotto 10-07-2012 19:31:12

Gracias oscarac

te explico y te pongo el codigo
Código Delphi [-]

SQLQuery1.SQL.Parameters.ParamByName('depto').Value:=Edit1.Text;

cuando estoy introduciendo el codigo arriba descrito despues de sql

en la ayuda no se encuentra la palabra parameters y es cuando me envia el error

undeclared :'parameters'

ecfisa 10-07-2012 19:38:40

Cita:

Empezado por ttotto (Mensaje 437069)
Gracias oscarac

te explico y te pongo el codigo
Código Delphi [-]
SQLQuery1.SQL.Parameters.ParamByName('depto').Value:=Edit1.Text;
cuando estoy introduciendo el codigo arriba descrito despues de sql en la ayuda no se encuentra la palabra parameters y es cuando me envia el error
undeclared :'parameters'

Hola ttotto.

Es que Params no es una propiedad de SQL (TStrings) sino de TSQLQuery.

Debería ser:

Código Delphi [-]
SQLQuery1.Params.ParamByName('depto').Value:= Edit1.Text;

Saludos.

Edito: Además toma en cuenta lo que te comentó oscarac, los parámetros dentro de la cadena sql van precedidos de ':'

ttotto 10-07-2012 19:45:36

Nuevamente no tengo palabras para agradecerle a todos

casimiro, oscarac y ecfisa

ya pude borrar el dato

gracias mil

oscarac 10-07-2012 21:05:33

Cita:

Empezado por ttotto (Mensaje 437071)
Nuevamente no tengo palabras para agradecerle a todos

casimiro, oscarac y ecfisa

ya pude borrar el dato

gracias mil


Ah no pues.... me halaga que me menciones con semejantes mostros en delphi... :D

ttotto 11-07-2012 19:05:01

borrar datos mysql
 
Buenos dias

Una vez que pude borrar un dato

me surge una pregunta

como puedo borrar un dato una vez que lo identifico en un dbgrid con el puntero y dando un click

que apareciera en otra forma y desde ahi estar seguro de borrarlo

gracias de antemano

ecfisa 11-07-2012 19:44:37

Hola ttotto.

¿ Y no te sería mas sencillo algo como esto ?
Código Delphi [-]
// Como ejemplo utilizo el evento OnDblClick del DBGrid, pero bién pudiera ser cualquier otro
procedure TForm1.DBGrid1DblClick(Sender: TObject);
const
  MSG = '¿ Desea borrar el dato %s ?';
begin
  with TDBGrid(Sender) do
   if MessageBox(Handle,PChar(Format(MSG,[SelectedField.AsString])),'', MB_ICONQUESTION+MB_YESNO) = IDYES then
      DataSource.DataSet.Delete;
end;

Saludos.

ttotto 12-07-2012 00:59:45

borrar datos mysql
 
Gracias ecfisa

voy a probar este codigo y te aviso

como agradecerte est oque haces

gracias nuvamente

ttotto 12-07-2012 17:14:01

borrar datos mysql
 
Hola ecfisa.

buenos dias todo bien con tu codigo

ahora bien si quiero borrar desde un boton que diga borrar una vez seleccionado del dbgrid

pensando en pasarle el valor que traigo de un simpledataset a un sqlquery te pongo el codigo

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
begin
   SQLQuery1.SQL.Clear;
   SQLQuery1.Close;
   SQLQuery1.SQL.Add('delete from departamento where pos01=:pos');
   SQLQuery1.Params.ParamByName('pos').Value:=SimpleDataSet1.DataSet;
   SQLQuery1.ExecSQL;


end;

no puedo completar el codigo la pasarle e lvalor del simpledataset al sqlquery

me puedes ayudar a entender

de antemano gracias

ecfisa 12-07-2012 21:14:55

Hola ttotto.

Si el nombre del campo es "pos", creo que deberías hacer:
Código Delphi [-]
    ...
    SQLQuery1.Params.ParamByName('pos').Value:=SimpleDataSet1.FieldByName('pos').Value;
    ...

Saludos. :)

ttotto 12-07-2012 23:01:34

borrar datos mysql
 
Gracias ecfisa
dentro de esta forma para hacer el borrado que ya lo hice y funciona

deseo que una vez que se borre me actualize mi dbgrid

se que es con un refresh y con un open y un close, ya lo intente de

varias formas poniendo primero el refresh ,luego el close y por ultimo el opne y

no pasa nada ya inverti el orden y nada me puedes ayudar

gracias

ecfisa 12-07-2012 23:38:31

Hola ttotto.

Si el DBGrid está asociado, mediante a su propiedad DataSource al TSimpleDataSet, es decir:
Cita:

DBGrid1.DataSource -> DataSource1.DataSet -> SimpleDataSet1
Basta con que hagas:
Código Delphi [-]
  SimpleDataSet1.Refresh;
Al finalizar cualquier accion de inserción, modificación o borrado realizado mediante el TSQLQuery.

Saludos.


La franja horaria es GMT +2. Ahora son las 09:44:28.

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