Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2010
shany shany is offline
Registrado
 
Registrado: ago 2010
Posts: 9
Poder: 0
shany Va por buen camino
Modo de edicion componente Firebird

Hola a todos!

estoy utilizando en delphi los componentes de Firebird, pero me sucede algo extraño que nunca me habia pasado.

uno de los dataset que tengo por ejemplo:

pfibdatasetReportes lo tengo en modo browse y justo cuando le pongo
pfibdatasetReportes.edit para poder modificar un dato en vez de ponerse en estado dsedit se pone en estado dsinsert, mas adelante lo quiero forzar antes de hacerle un post ponerlo en edicion y sigue en insert.
no entiendo por que me hace esto.. no se si haya alguna sugerencia a observar detenidamente que no me permita hacer lo que necesito.


esta tonteria me tiene retrasada en mi trabajo.


por otra parte hay otra duda que no entiendo muy bien

estoy utilizando dbcombolookup y un grid, cuando requiero hacer una insercion en el grid con insert en el grid se añade una nueva linea, todo bien pero cuando deseo elegir el dato que ira en el grid este vuelve al estado anterior y apuntando al registro anterior que muestra el grid.

ya probe quitando la conexion de dbcombolookup al mismo dataset que apunta el grid y de todos modos me quita el estado de insercion, cabe mencionar que cuando le da su gana lo hace bien y tambien mal. y lo que hago es que antes del post me cercioro que este en insert si no lo vuelvo a poner en ese estado pero tal vez no sea lo correcto.

no se si me de a entender que no entiendo jjeje.

de antemano gracias por la ayuda recibida.
Responder Con Cita
  #2  
Antiguo 24-08-2010
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
hola, si puedes poner ejemplo del código fuente mejor, para ver si estas haciendo algo incorrecto. Por otro lado ¿ Estas traceando el código ? Te lo digo, por que dependiendo de los eventos, te puede pasar que al hacer el insert se este cancelando por que entre a algún evento que cause la interrupción del Insert.

Por otro lado, a que te refieres con que usas componentes de Firebird. ¿ Te refieres a los componentes de conexión ? ¿ A los de edición ?
Responder Con Cita
  #3  
Antiguo 24-08-2010
shany shany is offline
Registrado
 
Registrado: ago 2010
Posts: 9
Poder: 0
shany Va por buen camino
ok aqui va lo que hice

Espero se entienda, muchas gracias por la atencion.

procedure TFMovimientos.SpBtnAreasClick(Sender: TObject);
var
FAgregarAreas :TFAgregarAreas;
begin
try
FAgregarAreas := TFAgregarAreas.Create(Self);
with DMHelpDesk do
begin
FAgregarAreas.EFolioLetra.Text:=pFIBDSViewReportesFOLIO.value + pFIBDSViewReportesIDLETRA.value;
pFIBDSReportesAreas.active:=false;
pFIBDSReportesAreas.Params[0].Value:=pFIBDSRepAreaEdoIDREPORTE.value;//pFIBDSReportesIDREPORTE.Value;
pFIBDSReportesAreas.active:=true;
pFIBDSReportes.Active:=FALSE;
pFIBDSReportes.Params[0].Value:=pFIBDSViewReportesFOLIO.value;//******activo el dataset
pFIBDSReportes.Active:=TRUE;
FAgregarAreas.idreporte:=pFIBDSRepAreaEdoIDREPORTE.value
end;
FAgregarAreas.ShowModal;
finally
FAgregarAreas.Free;
end;
end;


procedure TFAgregarAreas.SpBtnAceptarClick(Sender: TObject);
begin
with DMHelpDesk do
begin
if(pFIBDSReportesAreas.STATE<>dsinsert)then //****este es el dataset que me trae problemas con los combos lookup
begin
pFIBDSReportesareas.append;//y revalido que se ponga en insert otra vez porq tan solo con dar un click
end; //en el combo se quita el estado de append que puse al inicio, sin tener eventos en ellos.

pFIBDSReportesAreasIDAREA.value:=pFIBDSAreasIDAREA.value;
pFIBDSReportesAreasIDSERVICIO.value:=pFIBDSIdServicioAreaIDSERVICIO.value;

try
begin
If not pFIBDSReportesAreas.IsEmpty then
begin
pFIBDSReportesAreas.Post;
if(pFIBDSReportes.STATE<>dsedit)then
begin
pFIBDSReportes.edit; //***aqui intento poner el dataset en edicion y sigue en insert
end;

pFIBDSReportes.Post;
DMMov.pFIBTMov.CommitRetaining;
end;
end;
except
pFIBDSReportesAreas.Cancel;
pFIBDSReportes.cancel;
DMMov.pFIBTMov.RollbackRetaining;
Application.MessageBox('Ha ocurrido un error con el registro'#13'Favor de verificar la información introducida','Error',MB_OK+MB_ICONERROR);
end;




procedure TDMHelpDesk.pFIBDSReportesAreasBeforePost(DataSet: TDataSet);
begin
with DMHelpDesk do
begin
if pFIBDSReportesAreasIDAREA.IsNull then
begin
Application.MessageBox('Debe Seleccionar el area','Error',MB_OK+MB_ICONERROR);
exit;
end
else
if pFIBDSReportesAreasIDSERVICIO.IsNull then
begin
Application.MessageBox('Debe Seleccionar el servicio','Error',MB_OK+MB_ICONERROR);
exit;
end;
//OBT RA
pFIBDSGet_IdRA.active:=true;
pFIBDSReportesAreasIDRA.value:=pFIBDSGet_IdRAIDRA.value;
pFIBDSGet_IdRA.active:=false;
pFIBDSReportesAreasIDREPORTE.value:=pFIBDSReportesIDREPORTE.value;
pFIBDSReportesAreasESTADO.value:='R';
pFIBDSReportesAreasFASIGNADO.Value:=now;
//update
pFIBDSReportes.Edit; /*******esta es la parte donde trato de poner el modo y me pone insert
pFIBDSReportesESTADO.value:='P';
pFIBDSReportesFECHAAREASERV.value:=now;
end;
end;

//este es el unico evento que tengo para el dataset problema de reportes pero no creo que tnga nada de malo
procedure TDMHelpDesk.pFIBDSReportesCalcFields(DataSet: TDataSet);
begin
if pFIBDSReportesESTADO.value = 'R' then
pFIBDSReportesCCEstado.Value:= 'R - Recibido'
else
if pFIBDSReportesESTADO.value = 'P' then
pFIBDSReportesCCEstado.Value:= 'P - Proceso'
else
if pFIBDSReportesESTADO.value = 'T' then
pFIBDSReportesCCEstado.Value:= 'T - Terminado'
else
if pFIBDSReportesESTADO.value = 'C' then
pFIBDSReportesCCEstado.Value:= 'C - Concluido';
end;
Responder Con Cita
  #4  
Antiguo 24-08-2010
shany shany is offline
Registrado
 
Registrado: ago 2010
Posts: 9
Poder: 0
shany Va por buen camino
uso los componentes firebird

conexion
pfibdatabase

transaccion
pfibtransaction

dataset
pfibdataset


y si, si traceo por eso me di cuenta que no me deja poner edit en vez de insert.

no entiendo porque.
Responder Con Cita
  #5  
Antiguo 25-08-2010
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 17
JosepGA Va por buen camino
hola, ¿ has mirado el estado en concreto, no sea que sea distinto de dsBrowse ? ¿ Y si en el datasource del combo asignas al principio Nil y luego al final le asignas el DataSource ? Para ver si interfiere, y si es así, al menos de este modo no te afectara.
Responder Con Cita
  #6  
Antiguo 25-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola shany.

¿ Creaste algún trigger o procedimiento que pueda afectar a pFIBDSReportesAreas ?


Saludos.

Última edición por ecfisa fecha: 25-08-2010 a las 10:01:03.
Responder Con Cita
  #7  
Antiguo 30-08-2010
shany shany is offline
Registrado
 
Registrado: ago 2010
Posts: 9
Poder: 0
shany Va por buen camino
ya resolvi lo del edit

fue una tonteria de mi parte, tenia una consulta con un filtro que use en otro modulo y pues siempre me regresaba vacio y pues no habia nada que editar por eso lo ponia en insert.

muchas gracias por su interes y aprecio su amable ayuda!
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
componente para edicion de imagenes erickperez6 Gráficos 2 09-04-2009 15:33:10
Impedir edición en un componente derivado de TCustomComboBox MON___ OOP 2 21-11-2007 17:38:48
Poner TTreeView en modo de edición yusnerqui OOP 3 10-04-2006 19:33:47
firebird en modo clasic felixgo Firebird e Interbase 1 20-10-2005 20:17:10
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 ctronx Varios 2 25-06-2004 23:10:19


La franja horaria es GMT +2. Ahora son las 12:51:26.


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