La Web del Programador: Comunidad de Programadores
 
    Pregunta:  34760 - INSTRUCION UPDATE DE SQL QUE NO FUNCIONA
Autor:  Alexander Botero Gómez
El problema es el siguiente, tengo una pequeña aplicación que uso para comprobar las sentencias SQL, antes de incorporarlas el programa, todas las sentencias funcionan bien, pero al realizar una sentencia update ocurre una excepcion.

la version de delphi es la 5

la sentencia es la siguiente

update producto set stockmin = 20 where referencia = 1

y el mensaje es el siguiente

proyect proyect1.exe raised exception class enoresultset wiht massage 'error creating cursor handle' process stopped. use step or run to continue

  Respuesta:  claudio romero
El error se da porque el update no devuelve resultados como select, entonces
se utiliza el metodo ExecSQL, en vez de open.

Para consultas de tipo Select utiliza Query1.open

Para consultas de tipo insert, update, delete utiliza Query1.ExecSQL

Aqui hay una función que hice para mi de este tipo de consultas, tiene como
parametro un string con la sentencia SQL.

procedure EjecutaSql(consulta:string);
var Qconsulta:TQuery;
begin
Qconsulta:=TQuery.create(Application);
Qconsulta.sql.clear;
Qconsulta.sql.add(consulta);
Qconsulta.ExecSQL;
Qconsulta.close;
Qconsulta.destroy;
end;

Se utiliza asi:

EjecutaSQL('update producto set stockmin = 20 where referencia = 1');

Nos vemos.