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. |