![]() |
Error en consulta SQL (delete FROM ...)
hola, estoy usando Paeadox la que trae delphi 6 (creo que es paradox 7), nesecito borrar un par de tuplas, el codigo es:
NOTA: (OTMKey:string; idTrabajo:integer) dmSPI.Qtemp.close; dmSPI.Qtemp.SQL.Clear; dmSPI.Qtemp.SQL.Append('DELETE'); dmSPI.Qtemp.SQL.Append('FROM irh'); dmSPI.Qtemp.SQL.Append('WHERE irh.otm=:OTM and irh.idTrabajo=:idTrabajo'); dmSPI.Qtemp.ParamByName('OTM').AsString:=OTMKey; dmSPI.Qtemp.ParamByName('idTrabajo').AsInteger:=idTrabajo; qmSPI.Qtemp.open; luego del open, borra las tuplas, pero salta un error de excepcion mostrando el texto: `error creating cursor handle` (tanquilamente podria encerrar el open entre 'try execpet end', pero no parece correcto) de que es el Error? la consulta parece correcta, borra las tuplas... Otra Preg: Por otro lado, en que parte de la Ayuda, esta la descripcion de cada Texto de las excepcion del sistema. Hya una tabla que tenga Texto de Excepcion con su descripcion? Similar a la tabla de errores del compilador. |
Las consultas de acción deben de abrirse con la instrucción:
MiQuery.ExecSql; y no Open. Otra cosa que acabo de ver: MiQuery.Sql.Add('Bla....'); no Append. Un Saludo. |
Hola:
Contestando a la segunda pregunta, esos textos no están en la ayuda. Dependiendo del tipo de Excepción (cada unit declara sus Exceptions propias) se acude a unas constantes de cadenas almacenadas en archivos .pas (const.pas, dbconst.pas ...) aunque es posible que sólo dispongas de los archivos ya compilados .dcu. Si te interesa una traducción de las mismas, en esta misma web, sección recursos (mira el menu de la izquierda) están traducidas al castellano las cadenas utilizadas para varias versiones de Delphi, ahi verás muchos de los textos en inglés-castellano de las excepciones más frecuentes. Un saludo |
Cita:
Y por lo de .add es porque te gusta el sql.add? o por alguna razon importante, porque a mi me gusta el append porque le haces un sql.clean y te olvidas del indice del arreglo de string. Un saludo tambien.. ha y gracias a todos los que respondieron Y respondera... |
Las consultas que no devuelven datos, sino que realizan acciones sobre las tablas deben de abrirse con ExecSql.
Un Saludo. |
Hola Marcos
creo que lo que el quiere es saber cuales son La unica sentencia SQL que devuelve registros es la sentencia Select (si no voy equivocado) Las demas sentencias SQL (insert, update, delete, create, alter,....) no devuelven valores y, por tanto, deven de ejecutarse mediante ExecSQL No se si asi queda aclarada la duda :p |
Cita:
// Saludos |
la verdad es que el ExecSql andubo, ya no salta la exceppcion...
Gracias a todos... Y por el intento de hacerme entender que son 'Las consultas de acción' voy a colaborar diciendo, que son las que "no devuelven datos" :) almenos es lo que dice el help, y da ejemplos como crete, insert, etc... Gracias, de vuelta. |
La franja horaria es GMT +2. Ahora son las 13:05:19. |
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