Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2003
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 21
orfeo Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 12-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 12-05-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 15-05-2003
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 21
orfeo Va por buen camino
Cita:
Posteado originalmente por marcoszorrilla
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.
Cual son las intrucciones de accion? son las que modifican datos en la DB?


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

Última edición por orfeo fecha: 15-05-2003 a las 04:19:23.
Responder Con Cita
  #5  
Antiguo 15-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Las consultas que no devuelven datos, sino que realizan acciones sobre las tablas deben de abrirse con ExecSql.

Un Saludo.
Responder Con Cita
  #6  
Antiguo 15-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 15-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por cadetill
La unica sentencia SQL que devuelve registros es la sentencia Select (si no voy equivocado)
Sólo aclarar que aunque en Paradox lo más seguro es que esto sea cierto en otros casos no. Por ejemplo, en MySql hay sentencias como "show tables", "describe fields" y otras que también devuelven registros. Me imagino que en otros sistemas habrá sentencias similares.

// Saludos
Responder Con Cita
  #8  
Antiguo 16-05-2003
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 21
orfeo Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:18:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi