Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Unhappy Ayuda con TIBDataSet

Buen dia a todos.

He leido todos los foros y no encuentro la solución a mi problema.

Tengo un Grid que tiene como suorce un TIBDataSet, ya tengo asignadas las propiedades SelectSQL, InsertSQL, DeleteSQL, etc.

El select lo hace perfecto pero cuando intento actualizar o agregar un registro si hago un post me marca error o simplemente no guarda nada.
Tengo un TDataSource1.DataSource=IBDataSet1

Tambien Tengo una forma de TDBEDIT con el dataSource igual al TDataSource1 (del TiBDataset). Al presionar un boton actualizar, el grid se oculta y los datos del registro al que apunta el grid se muestran en los TDBEDIT para editarse.

Por ejemplo, en ModifySQL lo tengo así:
Código:
update mitabla set Cargo= :Cargo,Fecha= :Fecha,
where Clave= :Clave
y, mi codigo para hacer un update lo tengo así:
Código:
IBDataSet1.Edit
//EditClave.Field.Value:=1;
EditCargo.Field.Value:='Vigilante';
EditFecha.Field.AsDateTime:=Now;
Quiero actualizar e insertar registros con los valores del los TDBEDIT pero no entiendo como hacerlo.

Ya los ligue con los parametros y no funciona, por ejemplo:
Código:
IBDataSet1.Append;
IBDataSet1.ParamByName('Cargo').AsInteger := EditCargo.Field.Value;
...
Ya intente de mil maneras y me marca "IBSQL Closed"

Puede alguien ayudarme con un ejemplo de como hacerlo o del porque me esta marcando ese error?

De antemano gracias.

Saludos

Última edición por ZRR fecha: 06-10-2005 a las 05:10:34. Razón: error
Responder Con Cita
  #2  
Antiguo 06-10-2005
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 21
kalimero Va por buen camino
Hola.
En primer lugar debes asignar al TDBedit un Field de la lista.
Cuando haces click en el '+' de la barra de navegacion escribes en el dbedit, aceptas
y ya esta.
Si quieres modificar 'click' en el boton editar modificas en el dbedit y aceptas
Saludos
Responder Con Cita
  #3  
Antiguo 06-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Por ejemplo, en ModifySQL lo tengo así:
Código:

update mitabla set Cargo= :Cargo,Fecha= :Fecha,
where Clave= :Clave
Con esto lo tienes todo, ya que la filosofía de Interbase es la siguiente:

Cuando escribes en un DBEdit para modificar un registro, se hace "temporalmente", cuando se guardan los cambios, se envía esa SQL contra la tabla:

Código:
update mitabla set Cargo= <el valor del dbedit asociado>,
Fecha= <el valor del dbedit asociado>,
where Clave= <valor de la clave>
Obviamente hay que identificar el registro que se desea modificar, y se hace a través del valor de la clave.

Cuando le das a agregar un regisro con un DBnavigator, se enviará el SQL de InsertSQL.

El resto del código, no sé donde lo tienes, pero no hace falta.

Cuando quieras agregrar un registro totalmente por código, sin que el usuario lo sepa, entonces has de usar:
Código Delphi [-]
IBDataSet1.Append;
IBDataSet1.ParamByName('Cargo').AsInteger := 32;
...
IBDataSet1.Post;

un saludo
Responder Con Cita
  #4  
Antiguo 06-10-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
No tengo un DBNavigator, tengo dos botones uno para editar y otro para agregar nuevo.

Si al editar, una vez que modifico mis datos...
Código:
IBDataSet1.Edit;
...//el usr modifica datos y presiona un boton 'Aceptar' para guardarlos
IBDataSet1.Post;
IBDataSet1.Transaction.Commit;
no me marca error pero no actualiza el registro. Si intento con

Código:
IBDataSet1.Edit;
...//el usr modifica datos y presiona un boton 'Aceptar' para guardarlos
IBDataSet1.ParamByName('Cargo').AsInteger := 32;
...
IBDataSet1.Post;
IBDataSet1.Transaction.Commit;
me marca que no conoce 'Cargo'

Alguien tiene algun programita donde use el TIBDataSet para ver que estoy haciendo mal o es la versión del IBX (tengo delphi Enterprise 7 con Firebird 1.5)? como puedo actualizarlos o obtener una versión gratuita de FibPlus?

Muchas gracias por su ayuda

Saludos
Responder Con Cita
  #5  
Antiguo 06-10-2005
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola.
Cita:
Empezado por ZRR
Código Delphi [-]
...//el usr modifica datos y presiona un boton 'Aceptar' para guardarlos
IBDataSet1.ParamByName('Cargo').AsInteger := 32;
...
me marca que no conoce 'Cargo'
Creo que te estás confundiendo.... en vez del método ParamByName, usa FieldByName.

Aunque el componente TIBDataSet tenga parámetros en sus propiedades InsertSQL y UpdateSQL,
éstos no son accesibles mediante el método ParamByName, sólo lo son los parámetros de la propiedad SelectSQL.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #6  
Antiguo 06-10-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Unhappy

Gracias Daniel, ya lo cambie a FielByName, el problema es que no actualiza el registro ni me marca error, alguien sabe porque?
Responder Con Cita
  #7  
Antiguo 07-10-2005
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola, en este componente el refresco no es automático.

Puedes probar a hacer un Refresh del mismo, aunque muchas veces hay que cerrarlo y volver a abrirlo...

Un saludo.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #8  
Antiguo 10-10-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Rsp

Cuale s el eroro que te marca
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #9  
Antiguo 11-10-2005
RESP 3.0 RESP 3.0 is offline
Miembro
 
Registrado: may 2005
Posts: 29
Poder: 0
RESP 3.0 Va por buen camino
Respuesta

Mira no veo en donde asignas el parametro "clave" al hacer la modificacion, para generar los script te sugeriria que utilizaras la opcion que trae el IBDataset ( click derecho / Dataset Edit / Generate SQL ) solamente debes de seleccionar la llave primaria y Listo
Responder Con Cita
  #10  
Antiguo 11-10-2005
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Ya funciono. No se ni que tenía pero me hizo sufrir un rato, lo unico nuevo que hice fue darle doble click sobre el TIBDataSet, asignarle todos los campos del select y quite todos los .FieldByName.

Gracias

Saludos
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 00:32:32.


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