Ver Mensaje Individual
  #1  
Antiguo 30-01-2005
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Reputación: 21
senpiterno Va por buen camino
Problema con filtro en IBDataset

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...
Código Delphi [-]
 ......
 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...
__________________
Un hombre inteligente aprende de los errores propios...
Un hombre sabio aprende de los errores de los demas...

Última edición por marcoszorrilla fecha: 30-01-2005 a las 11:26:38.
Responder Con Cita