senpiterno
30-01-2005, 00:48:17
Hola amigos
Tengo el siguiente problema. creo un Ibdateset en tiempo de ejecucion al cual le asigno diferentes propiedades tales como SelectSQL, InsertSQL,ModifySQL y DeleteSQL, dentro de un bucle voy efectuando diferentes operaciones con la tabla que enlaza al dateset (insertar, modificar, eliminar, borrar) una de esas operaciones realiza un filtro para poder ubicar un registro y modificarlo, el problema es que dicho filtro no funciona, es decir nunca se posiciona en el registro buscado, siendo que dicho registro si existe....Le he dado bastantes vueltas al problema y no logro encontrar en donde esta el error....aqui le muestro el trozo de codigo que me esta volviendo loco...
......
TObrasClientes.Filtered:=False;//Desactivamos el filtro
TObrasClientes.Filter:='CODIGOOBRA = ' + QuotedStr(CodigoObra);
TObrasClientes.Filtered:=True;//Activamo el filtro
TObrasClientes.FindFirst;
//Vemos si el registro fue encontrado
If TObrasClientes.FieldValues['CODIGOOBRA'] = CodigoObra Then Begin
//El registro fue encontrado
//Lo modifacamos
TObrasClientes.Edit;
TObrasClientes.FieldValues['NOMBREOBRA']:=TxtNombreObra;
TObrasClientes.FieldValues['ESTADO']:=TxtEstado;
TObrasClientes.FieldValues['FECHAULTIMAMODIFICACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['ULTIMOUSUARIOQUEMODIFICO']:=CSUsuarioActivo.CodigoU;
//Quien lo modifico por ultima vez
TObrasClientes.Post;
End Else Begin//El registro fue borrado, lo volvemos a grabar
TObrasClientes.Filtered:=False;//Desactivamo el filtro
//Asignamos los valores correspondientes
TObrasClientes.Insert;
TObrasClientes.FieldValues['CODIGOOBRA']:=CodigoObra;
TObrasClientes.FieldValues['RUT']:=VRutCliente;
TObrasClientes.FieldValues['NOMBREOBRA']:=TxtNombreObra;
TObrasClientes.FieldValues['ESTADO']:=TxtEstado;
TObrasClientes.FieldValues['FECHACREACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['FECHAULTIMAMODIFICACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['USUARIOCREADOR']:=CSUsuarioActivo.CodigoU;//Quien lo creo
TObrasClientes.FieldValues['ULTIMOUSUARIOQUEMODIFICO']:=CSUsuarioActivo.CodigoU;
//Quien lo modifico por ultima vez
TObrasClientes.Post;
End;//If
..............
Cualquier ayuda se agradece
Saludos...
Tengo el siguiente problema. creo un Ibdateset en tiempo de ejecucion al cual le asigno diferentes propiedades tales como SelectSQL, InsertSQL,ModifySQL y DeleteSQL, dentro de un bucle voy efectuando diferentes operaciones con la tabla que enlaza al dateset (insertar, modificar, eliminar, borrar) una de esas operaciones realiza un filtro para poder ubicar un registro y modificarlo, el problema es que dicho filtro no funciona, es decir nunca se posiciona en el registro buscado, siendo que dicho registro si existe....Le he dado bastantes vueltas al problema y no logro encontrar en donde esta el error....aqui le muestro el trozo de codigo que me esta volviendo loco...
......
TObrasClientes.Filtered:=False;//Desactivamos el filtro
TObrasClientes.Filter:='CODIGOOBRA = ' + QuotedStr(CodigoObra);
TObrasClientes.Filtered:=True;//Activamo el filtro
TObrasClientes.FindFirst;
//Vemos si el registro fue encontrado
If TObrasClientes.FieldValues['CODIGOOBRA'] = CodigoObra Then Begin
//El registro fue encontrado
//Lo modifacamos
TObrasClientes.Edit;
TObrasClientes.FieldValues['NOMBREOBRA']:=TxtNombreObra;
TObrasClientes.FieldValues['ESTADO']:=TxtEstado;
TObrasClientes.FieldValues['FECHAULTIMAMODIFICACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['ULTIMOUSUARIOQUEMODIFICO']:=CSUsuarioActivo.CodigoU;
//Quien lo modifico por ultima vez
TObrasClientes.Post;
End Else Begin//El registro fue borrado, lo volvemos a grabar
TObrasClientes.Filtered:=False;//Desactivamo el filtro
//Asignamos los valores correspondientes
TObrasClientes.Insert;
TObrasClientes.FieldValues['CODIGOOBRA']:=CodigoObra;
TObrasClientes.FieldValues['RUT']:=VRutCliente;
TObrasClientes.FieldValues['NOMBREOBRA']:=TxtNombreObra;
TObrasClientes.FieldValues['ESTADO']:=TxtEstado;
TObrasClientes.FieldValues['FECHACREACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['FECHAULTIMAMODIFICACION']:=CSFechaDeSistema+Time;
TObrasClientes.FieldValues['USUARIOCREADOR']:=CSUsuarioActivo.CodigoU;//Quien lo creo
TObrasClientes.FieldValues['ULTIMOUSUARIOQUEMODIFICO']:=CSUsuarioActivo.CodigoU;
//Quien lo modifico por ultima vez
TObrasClientes.Post;
End;//If
..............
Cualquier ayuda se agradece
Saludos...