PDA

Ver la Versión Completa : Problemas Con El Clientdataset Y Tztable


foxito
22-11-2008, 15:41:28
Hola Delphineros, vengo con un problema, resulta que estoy desarrollando una alta de medicos en una tabla de MySQL vs DELPHI 7 y utilizó las librerias de ZEOS los Componentes TZTABLE, DATASETPROVIDER1, CLIENTDATASET1 Y DATASOURCE y estan enlazados de la siguiente manera:

TZTABLE : CONNECTION = CON MI DATAMODULE
DATASETPROVIDER1 : DATASET = TZTABLE
CLIENTDATASET1 : PROVIDERNME = DATASETPRIVDER1
DATASOURCE : DATASET = CLIENTDATASET1

Al darle un click e insertar un nuevo registro no lo realiza y mi codigo es este:


procedure TFAna_Clinicos.FormCreate(Sender: TObject);
begin
ClientDataSet1.Open;
TAnaClinicos.Close;
end;

procedure TFAna_Clinicos.TBNewClick(Sender: TObject);
begin
If TNew then //Nuevo
Begin
// TAnaClinicos.Append;
ClientDataSet1.Append;
// Init_Field();
DBEdit2.SetFocus;
TBNew.ImageIndex := 1;
TBNew.Caption := 'F4: Salvar';
TBNew.Hint := 'Grabar los cambios';
TNew := False;
End
Else
Begin
// TAnaClinicos.Post;
ClientDataSet1.ApplyUpdates(0);
Init_Field();
EdReg.Text := IntToStr(TAnaClinicos.RecordCount);
TBNew.ImageIndex := 0;
TBNew.Caption := 'F3: Nuevo';
TBNew.Hint := 'Nuevo registro';
TNew := True;
End;
end;



Ayudeme porque no se realiza la inserción, ademas de que en mi FORM no se queda en blanco como si omitiera la inserción

enecumene
22-11-2008, 16:04:04
Hola, dos cosas:

1) En ningún momento has abierto la tabla TAnaClinicos.
2) Con ClientDataset debes realizar Insert...Post y luego el ApplyUpdates.

Haz esos cambios y luego nos comentas.

Saludos.

foxito
22-11-2008, 20:41:08
Hola ecumene, antes que nada gracas por contestarme mi msg. ya abri la TZTABLE.OPEN; pero aún asi no realiza nada. No se ve el efecto de insercción de registro... por ej. en mi dbgrid no inserta ningún registro solo se posiciona en primer registro del dbgrid.

Gracias

enecumene
23-11-2008, 01:16:20
¿Luego del Append realizaste el Post?, porque para grabar en el clientdataset debes realizar el post para luego grabar en la base fisica via del Applyupdates.

Saludos.

foxito
24-11-2008, 17:38:37
gracias nuevamente por cotestarme y estarme ayudando econumene... despues del CLIENTDATASET.APPEND; le adicione el CLIENTDATASET.POST;
pero ahora me manda el siguiente error FIELD 'Nombre' MUST HAVE A VALUE

estoy haciendo otra burrada:D