PDA

Ver la Versión Completa : Eliminar algunos registros con sql


miguelb
19-09-2003, 15:11:15
Hola:
necesito eliminar los registros de una tabla que cumplan con
una determinada condicion.
Para ello inclui en el form un Tquery, el Query1
y cuando presiono un boton ejecuto
APLICO_SQL('delete from as_asoc.db where codi_as = "005";');
y
PROCEDURE APLICO_SQL(UNSQL:STRING);
var
SQL_Tstrings :Tstrings;
begin
SQL_Tstrings := TStringList.Create;
SQL_Tstrings.Clear;
SQL_Tstrings.add(unSql);
QUERY1.active:=false;
QUERY1.sql:=SQL_Tstrings;
QUERY1.Active:=true;
end;
El problema es que no borra los registros y da el siguiente error:
Error : Error Creating Cursor Handle
La tabla existe,
el campo es de tipo string,
creo que esta todo normal.
Pero no funciona,


alguna idea?
desde ya gracias
Miguel

marcoszorrilla
19-09-2003, 15:41:47
QUERY1.ExecSql;

Para los conjuntos que no devuelven datos.

Un Saludo.

miguelb
19-09-2003, 15:56:18
Marcos:
disculpame, pero no entiendo que es lo que me queres decir.
Debo utilizar el QUERY1.ExecSql? en vez de activar, y desactivar?
Para los conjuntos que no devuelven datos.
que me queres decir con esto?
Disculpa y gracias
Miguel

delphi.com.ar
19-09-2003, 16:11:03
Cuando utilizas Query.Active:=True o Query.Open, le estas diciendo que lo que cargaste en la propiedad Sql es una consulta de selección, que retorna datos. Y lo que tu quieres es que Elimine/Inserte/Modifique datos, para eso debes utilizar ExecSql!

Saludos!

marcoszorrilla
19-09-2003, 16:11:43
Si eso mismo, una consulta de selección se activa con Active:=True;

Pero las consultas de acción, es decir que no devuelven datos, sino que ejecutan acciones sobre la tab la, añadir registros, eliminar como es tu caso, actualizar....

Deben de activarse por medio de la instrucción que te menciono.

ExecSql.

Un Saludo.