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 29-02-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Porque fibClientDataset no regresa el registro actual ????

Buen dia compañeros, estoy empezando a cascarear ó a probar los fibClientDataset de los fibPlus, con el unico objetivo de que en estos componentes tiene una herramienta muy buena de las tantas que tiene, que es la de poder crear campos AGREGADOS, hasta aqui vamos bien, el problema viene cuando quiero tomar el registro actual, este componente lo uso para un detalle, del cual tengo como llave primaria un campo INDICE de tipo entero, donde tiene que tomar un numero diferente en cada registro, he realizado pruebas en los diferentes eventos del fibClientDataset Beforepost, Afterpost, BeforeInsert y AfterInsert, ejemplo:

Código Delphi [-]
  CDSDetalleIndice.AsInteger := CDSDetalle.RecNo;

Y todo el tiempo toma el dato -1, checando en el fuente DB.pas, miro alro raro en las 2 funciones con que se relacionan esta propiedad:

Código Delphi [-]
DB.pas
....
//Siempre Regresa -1
function TDataSet.GetRecNo: Integer;
begin
Result := -1;
end;
//Función Vacia 
procedure TDataSet.SetRecNo(Value: Integer);
begin
end;
.....

No quiero usar los memoryData para tomar una copia del fibclientdataset y posteriormente regresarme la posición del registro, quiero que el propio fibClientDataset lo haga, espero alguien me pueda orientar ó ayudar con cualquier comentario al respecto....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 29-02-2008 a las 19:30:17. Razón: Corrección
Responder Con Cita
  #2  
Antiguo 29-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En realidad, tienes que mirar la implementación de los FIbPlus

function TFibClientDataSet.GetRecNo: Integer;

o bien, si el origen de datos es un TIBDataset, pues la implementación de ellos que redefinen (override) el comportamiento de los TDatasets de delphi.

En todo caso, creo que yendo al último registro de tu dataset, después te dará el valor correcto. Es un tema recurrente en todos los componentes c/s.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 01-03-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
En realidad, tienes que mirar la implementación de los FIbPlus

function TFibClientDataSet.GetRecNo: Integer;

o bien, si el origen de datos es un TIBDataset, pues la implementación de ellos que redefinen (override) el comportamiento de los TDatasets de delphi.

En todo caso, creo que yendo al último registro de tu dataset, después te dará el valor correcto. Es un tema recurrente en todos los componentes c/s.

Saludos

Creo que no me explique bien LEPE, cuando digo que no me funciona el RECNO, es por que la tabla del clientdataset esta vacia, es decir, voy a meter registros nuevos a un campo en este caso lo llamo INDICE de tipo entero, lo tengo como llave primaria, por lo tanto en los eventos Before,After Insert y Post del fibClientDataset ya le puse la asignación a ese campo del RECNO y me devuelve en cada registro el valor -1, por lo tanto me marca error de PK al guardar, con los Dataset's del fibPlus si funcionan, se me hace raro que con los ClientDataset no se pueda....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #4  
Antiguo 04-03-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cita:
Empezado por AGAG4 Ver Mensaje
Creo que no me explique bien LEPE, cuando digo que no me funciona el RECNO, es por que la tabla del clientdataset esta vacia, es decir, voy a meter registros nuevos a un campo en este caso lo llamo INDICE de tipo entero, lo tengo como llave primaria, por lo tanto en los eventos Before,After Insert y Post del fibClientDataset ya le puse la asignación a ese campo del RECNO y me devuelve en cada registro el valor -1, por lo tanto me marca error de PK al guardar, con los Dataset's del fibPlus si funcionan, se me hace raro que con los ClientDataset no se pueda....
Tuve que hacer una mexicanada, si asi lo quieren llamar, tengo una tabla maestra solo le agregue un campo entero, donde cada vez que entra al evento beforeinsert en la tabla detalle, le voy incrementando en 1 a dicho campo para llevar ese control en el detalle....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
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
Número de registro actual (DBGrid) FGarcia Varios 10 29-02-2008 23:38:48
Identificar registro actual en el dbgrid ilichhernandez Conexión con bases de datos 7 17-11-2005 21:27:12
Adquirir el campo del registro actual nuri SQL 8 27-07-2005 16:46:58
Imprimir reporte de registro actual silviodp Impresión 1 27-04-2005 22:00:37
SelectSQL del registro actual Tomás SQL 2 04-03-2004 00:23:18


La franja horaria es GMT +2. Ahora son las 09:14:24.


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