Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Problemas con TQuery

Hola, el asunto es el siguiente, cuando intento insertar una registro con un TQuery me sale un error "No se puede ejecutar una accion con un Dataset cerrado", cosa que no pasa con un TTable.
El primer campo está en Nil por que es AutoIncrementable.
Código Delphi [-]
TblContacto.AppendRecord([NIL,NICK.Text,NOMBRES.Text,APELLIDOS.Text,TEL_PER.Text
  ,TEL_LAB.Text,TEL_MOV.Text,DIRECCION.Text,CIUDAD.Text
  ,MAIL_PER.Text,MAIL_LAB.Text,MAIL_ADD.Text
  ,FECHA_NAC.Date,ToBMP(ImgFoto.Picture.Graphic),NOTAS.Lines]);

Si alguien sabe como hacerlo funcionar, lo agradeceré por siempre.

Última edición por mightydragonlor fecha: 30-08-2007 a las 04:36:19.
Responder Con Cita
  #2  
Antiguo 30-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Tienes que abrirlo con open; o Active := True;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Red face

El Componente ya está abierto, solo que lo hago en el Form.Create.
Responder Con Cita
  #4  
Antiguo 30-08-2007
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
porque no pruebas esto:


Código Delphi [-]
tquery.insert;
tquery.fieldbyname('campo1').asString := cata.text;
tquery.fieldbyname('campoFecha').asDate := StrtoDate(caja2.text);
....
Tquery.post;


Saludos
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #5  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Ya lo intenté y no funciona, como primera medida tengo un campo de tipo Gráfico.
Código Delphi [-]
tquery.insert;
tquery.fieldbyname('campo1').asString := cata.text;
tquery.fieldbyname('campoFecha').asDate := StrtoDate(caja2.text);
....
Tquery.post;
pero no hay ninguna propiedad como AsGraphic.
Responder Con Cita
  #6  
Antiguo 30-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
y porq no colocas el codigo completo de done guardas a ver que haces??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
está tal cual, solo que en el create está el Open y despues el Post

Código Delphi [-]
TblContacto.Open
TblContacto.AppendRecord([NIL,NICK.Text,NOMBRES.Text,APELLIDOS.Text,TEL_PER.Text
,TEL_LAB.Text,TEL_MOV.Text,DIRECCION.Text,CIUDAD.Text
,MAIL_PER.Text,MAIL_LAB.Text,MAIL_ADD.Text
,FECHA_NAC.Date,ToBMP(ImgFoto.Picture.Graphic),NOTAS.Lines]);
TblContacto.Post;
Responder Con Cita
  #8  
Antiguo 30-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
sigo sin entender porq dices que el open esta en el create y lo colocas alli, porq no pruebas esto:

Código Delphi [-]
TblContacto.Active := True;
TblContacto.AppendRecord([NIL,NICK.Text,NOMBRES.Text,APELLIDOS.Text,TEL_PER.Text
,TEL_LAB.Text,TEL_MOV.Text,DIRECCION.Text,CIUDAD.Text
,MAIL_PER.Text,MAIL_LAB.Text,MAIL_ADD.Text
,FECHA_NAC.Date,ToBMP(ImgFoto.Picture.Graphic),NOTAS.Lines]);
TblContacto.Post;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 30-08-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
No se mucho sobre SQL y queries, pero tu problema no será más bien, por lo que estás utilizando un query y esté a su vez es solo para consultar datos y no para agregar. De todos modos recuerda que SQL ya trae sus comandos para agregar nuevos registros. Por que no utilizar otro TQuery exclusivamente para agregar u modificar registros.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #10  
Antiguo 30-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
lo que dices es cierto, pero el error viene porq el dataset no ha sido abierto apropiadamente, lo que tu piensas es cuando el error que da menciona que no se puede abrir un dataset de solo lectura
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Tienes Razón, lo que pasa xon el Query es que la instrucción SQL es de Select, esto hace que el Query sea de solo lectura y al intentar insertar un registro salga el error de solo lectura y si borro el SQL para ejecutar la accion, aparece como DataSet Cerrado, agradeceria mucho si alguien sabe como insertar y modificar registros atravez de un TQuery.
La Idea con esto es la siguiente:
Tengo Un DataModule y en este un TDataSource y un TQuery.
Tengo Un Form y en este un DBGrid y los controles para insertar un registro
(No son los DBControls, son los Standard), lo que quiero que que al insertar o modificar un registro se actualice automaticamente el DBGrid, si lo Hago con un TTable no ocurre ningún problema, pero con este no puedo hacer agrupamientos ni busquedas Like, ni ordenamientos especiales, por esta razón necesito un TQuery. Bueno si alguien sabe como lograrlo agradeceré enormemente su ayuda.
De antemano gracias por prestar atención a este caso y por las sugerencias.
Responder Con Cita
  #12  
Antiguo 30-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Código Delphi [-]
MiQuery.Insert;
   MiQueryCampo1.AsString := 'Algo';
   .
   .
   .
   MiQueryCampon.AsString := 'Algo'; 
MiQuery.Post;

Para que esto funcione debes colocar la propiedad RequestLive a True
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #13  
Antiguo 30-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
esta es la idea:
Código Delphi [-]
TuQuery.SQL.Text := 'Insert Into TblContacto (aoutoc, nick, nombre, apellido, telefonop, telefonoh, telefonom, direccion, ciudad) '+
               'Values ('  ', '+QuotedStr(NICK.Text)+', '+QuotedStr(NOMBRES.Text)+', '+
              QuotedStr(APELLIDOS.Text)+', '+TEL_PER.Text+', '+TEL_LAB.Text+', '+TEL_MOV.Text+', '+DIRECCION.Text+', '+CIUDAD.Text+')'
 QTemp.ExecSQL;
No esta completa la sentencia, pero ya con esto veras como se hace.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #14  
Antiguo 30-08-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Gracias Caral, le verdad no sabia como hacer el Insert Into teninedo un campo autoincremetable, gracias a todos por su colaboración.

Última edición por mightydragonlor fecha: 31-08-2007 a las 16:59:58.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problemas con TQUERY ercrizeporta Conexión con bases de datos 2 21-09-2006 17:39:09
Problemas con TQuery lucero_chivas C++ Builder 3 16-08-2006 05:32:41
Problemas con Tquery Coco_jac Varios 4 26-12-2005 18:43:33
Tquery con problemas jobapi Conexión con bases de datos 13 28-08-2003 19:56:50
Problemas TQuery Hozkar Conexión con bases de datos 2 01-07-2003 10:19:37


La franja horaria es GMT +2. Ahora son las 07:18:41.


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