FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 Código:
IBDataSet1.Edit //EditClave.Field.Value:=1; EditCargo.Field.Value:='Vigilante'; EditFecha.Field.AsDateTime:=Now; Ya los ligue con los parametros y no funciona, por ejemplo: Código:
IBDataSet1.Append; IBDataSet1.ParamByName('Cargo').AsInteger := EditCargo.Field.Value; ... 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 |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
Cita:
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> 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:
un saludo |
#4
|
|||
|
|||
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; 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; 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 |
#5
|
||||
|
||||
Hola.
Cita:
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... |
#6
|
|||
|
|||
Gracias Daniel, ya lo cambie a FielByName, el problema es que no actualiza el registro ni me marca error, alguien sabe porque?
|
#7
|
||||
|
||||
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... |
#8
|
||||
|
||||
Rsp
Cuale s el eroro que te marca
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#9
|
|||
|
|||
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
|
#10
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|