Delphi - Borrar registro con sql

 
Vista:

Borrar registro con sql

Publicado por Maibok (34 intervenciones) el 12/12/2005 21:29:12
Buenas a todos.

Escribo este mensaje porque tengo un problema:
Mirad, estoy haciendo una práctica con Delphi y MS SQL Server 2000. El caso es que tengo una pequeña dudilla a la hora de borrar un registro de una tabla. Vamos a ver, os pongo en situación:

Se trata de una tabla-prueba que sólo tiene dos campos:
numero(int)
nombre(nvarchar)

Bien, pues lo que quiero es que si tengo dos, tres, o los registros que sean quiero borrar uno en concreto. En la interface veo la tabla mediante un DBGrid normal y corriente. Lo que hago es seleccionar una fila en el DBGrid y luego dar al botón borrar cuyo código es el siguiente:

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE prueba');
ADOQuery1.SQL.Add('WHERE prueba.numero=numero');
ADOQuery1.ExecSQL();
ADOTable1.Active:=false;
ADOTable1.Active:=true;
end;

pero es que esto me borra todos los registros. Realmente lo que quiero es, si sabeis, que me digais cómo hago la sentencia sql para referirme al registro que está seleccionado en el DBGrid ya que no sé cómo hacerlo.

Bueno, espero haberme explicado bien jeje. Venga nada más.
Gracias por la ayuda.

Saludos!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Borrar registro con sql

Publicado por Dr Juzam (821 intervenciones) el 12/12/2005 22:59:53
Lo que tienes que hacer es decirle el número en concreto:

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE prueba');
ADOQuery1.SQL.Add('WHERE prueba.numero=:numero');
ADOQuery1.Parameters[0].Value:=DBGrid1.Datasource.Field[0]; {Si el numero es el field 0 del DataSource}
ADOQuery1.ExecSQL();
ADOTable1.Active:=false;
ADOTable1.Active:=true;

Estoy hablando de memoria, pero si no es exactamente así es muy parecido. Si sigues con problemas, déjanos un aviso y ya me aseguro de como es. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar