![]() |
Eliminar algunos registros con sql
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 |
QUERY1.ExecSql;
Para los conjuntos que no devuelven datos. Un Saludo. |
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 |
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! |
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. |
La franja horaria es GMT +2. Ahora son las 02:06:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi