Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2006
beatriz g beatriz g is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
beatriz g Va por buen camino
Activar un SQLQuery

Hola tengo un problema el insertar datos en una base de datos Mysql. Para insertar utilizo un componente SQLQuery al que le añado la sentencia insert (query.SQL.Add('insert into personas ....')) y a veces me da un error de violacion de memoria, me dijeron que tal vez fuera porque el componente no estuviera activo, efectivamente compruebo la propiedad Active del componente en tiempo de ejecuion y es False, le asigno el valor True esta propiedad (query.Active:=True) pero me genera el siguiente error al ejecutar:

query: cursor nor returned from Query

¿Porque me genera este error?
Responder Con Cita
  #2  
Antiguo 29-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola Beatriz, quizá sería bueno que pusieras ese pedazo de código donde trabajas con la Query para ver que estás haciendo.

Así a bote pronto se me ocurre por lo que dices, que estás activando la Query cuando no hace falta hacerlo.

- La desactivas.
- Le añades el texto SQL a la query.
- Le añades los parámetros si los tiene.
- Por último ejecutas la query, ¿como? si una simple consulta, basta que hagas un Open o Active = True. Pero si tu caso es una consulta de modificación, alta o borrado, debes usar ExecSQL.

Alomejor me he ido por otro camino, por eso repite que mejor sería que pusieras el código, para ver entre todos donde puede estar ocurriendo el error.

Saludos
Responder Con Cita
  #3  
Antiguo 29-08-2006
beatriz g beatriz g is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
beatriz g Va por buen camino
Bueno con lo que me comentas creo que estoy equivocada al poner la propiedad Active del Query a True, al ser un 'insert' no se puede poner esta propiedad activa, verdad?. Bueno era por probar algo ya que la violacion de memoria al ejecutar el 'insert' con ExecSQL no consigo que desaparezca y creia que podia ser porque la propiedad Active estuviera a False. Os paso el codigo y :

query.SQL.Clear;
query.SQL.Add('insert into personas values (1,2,3,4,5,6,7)');
query.ParamByName('p1').Clear;
query.ParamByName('p1').AsInteger:=identificador;
query.ParamByName('p2').Clear;
query.ParamByName('p2').AsString:=e_e.Text;
.....
....//asigno el valor de todos los parametros
.....
// query.Active:=True; //al ejecutar esto es donde me genera la el error que os comente antes.
query.ExecSQL; // y al ejecutar esto a veces me genera una violacion de memoria

Yo en realidad lo que estoy intentando solucionar es la violacion de memoria,
¿se os ocurre algo?
Responder Con Cita
  #4  
Antiguo 29-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Efectivamente no hay que poner el active a true al hacer un insert.
Por el código que mandas yo lo veo bien. Sólo que no he usado nunca un clear de los parámetros, ya que siempre me suelo asegurar de que tendrán un valor.

Lo que te aconsejo es que:
1º - prueba a quitar el parambyname.clear a ver que tal. No sea cosa que fuera por eso, no lo sé.

2º - si aún así no se te ha arreglado, pon un breakpoint en la linea del SQL.Clear y ves paso a paso con F8 y ponte encima de todos los parámetros que le mandas a ver si son todos correcto, no sea que alguno esté mal.

Espero te sirva

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como logro consultas desde clientdatset y SqlQuery Arturo Conexión con bases de datos 0 22-05-2006 16:41:09
Cómo obtener la fecha actual en una sqlquery Mauro® Conexión con bases de datos 4 12-04-2006 15:23:39
Problemas al Isertar Cadenas con SQLQuery de DBExpress chivofbv Conexión con bases de datos 0 10-11-2004 19:53:35
SQLQuery con IBExpress Humberto Pertuz Conexión con bases de datos 2 05-11-2003 22:48:02


La franja horaria es GMT +2. Ahora son las 04:55:23.


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