gravar dados na tabela detalhe
O sistema não da erro, mas não grava na tabela de detalhe, já não sei mais o que fazer, estou usando os componentes da paleta zeos.
veja me essa listagem abaixo, se alguém puder me ajudar, por favor me socorra
Tabela Mestre
Calibracao
PK ID Integer
DataEmissao TimeStamp
DataEntrega TimeStamp
TotalPedido Numeric(12,2)
Tabela Detalhe
CalibraItens
PK ID Integer
FK ID_Calibracao Integer
Produto Varchar(30)
Qtde Numeric(12,2)
Obs: PK = Chave Primária; FK = Chave Estrangeira.
ZConnection = Sua conexão com o banco devidamente configurada
SQLZQuery
SQL = select * from pedidos
Name = sqlMestre
DataSetProvider
DataSet = sqlCalibracao
Name = dspCalibracao
ClientDataSet
Name = cdsCalibracao
ProviderName = dspCalibracao
DataSource
Name = dsCalibracao
DataSet = cdsCalibracao
Componentes da tabela detalhes.
SQLZQuery
Name = sqlCalibraItens
SQL = select * from ItensCalibracao
ZConnection = Sua conexão devidamente configurada
DataSetProvider
Name = dspCalibraItens
DataSet = sqlCalibraItens
ClientDataSet
Name = cdsCalibraItens
IndexFieldsNames = ID_Calibracao
MasterFields = ID
DataSource
Name = dsCalibraItens
DataSet = cdsCalibraItens
===========================================================
Eevento OnCreate do formulário
cdsCalibracao.Open;
cdsCalibraItens.Open;
cdsCalibraItens.MasterSource := dsCalibracao;
=================================================================
Código do botão inserir
cdsCalibracao.Open;
cdsCalibracao.Append;
cdsCalibraItens.Open;
cdsCalibraItens.Append;
==================================================
Código do botão gravar
procedure TForm1.Button2Click(Sender: TObject);
var novo: boolean;
begin
novo:= (dsCalibracao.State = dsInsert);
dsCalibracao.DataSet.post;
if dsCalibracao.DataSet is TClientDataSet then
begin
if (TClientDataSet(dsCalibracao.DataSet).ApplyUpdates(0) = 0)
and novo then
begin
dsCalibracao.DataSet.Refresh;
if dsCalibracao.DataSet.RecordCount > 1 then
dsCalibracao.DataSet.Last;
end;
end;
veja me essa listagem abaixo, se alguém puder me ajudar, por favor me socorra
Tabela Mestre
Calibracao
PK ID Integer
DataEmissao TimeStamp
DataEntrega TimeStamp
TotalPedido Numeric(12,2)
Tabela Detalhe
CalibraItens
PK ID Integer
FK ID_Calibracao Integer
Produto Varchar(30)
Qtde Numeric(12,2)
Obs: PK = Chave Primária; FK = Chave Estrangeira.
ZConnection = Sua conexão com o banco devidamente configurada
SQLZQuery
SQL = select * from pedidos
Name = sqlMestre
DataSetProvider
DataSet = sqlCalibracao
Name = dspCalibracao
ClientDataSet
Name = cdsCalibracao
ProviderName = dspCalibracao
DataSource
Name = dsCalibracao
DataSet = cdsCalibracao
Componentes da tabela detalhes.
SQLZQuery
Name = sqlCalibraItens
SQL = select * from ItensCalibracao
ZConnection = Sua conexão devidamente configurada
DataSetProvider
Name = dspCalibraItens
DataSet = sqlCalibraItens
ClientDataSet
Name = cdsCalibraItens
IndexFieldsNames = ID_Calibracao
MasterFields = ID
DataSource
Name = dsCalibraItens
DataSet = cdsCalibraItens
===========================================================
Eevento OnCreate do formulário
cdsCalibracao.Open;
cdsCalibraItens.Open;
cdsCalibraItens.MasterSource := dsCalibracao;
=================================================================
Código do botão inserir
cdsCalibracao.Open;
cdsCalibracao.Append;
cdsCalibraItens.Open;
cdsCalibraItens.Append;
==================================================
Código do botão gravar
procedure TForm1.Button2Click(Sender: TObject);
var novo: boolean;
begin
novo:= (dsCalibracao.State = dsInsert);
dsCalibracao.DataSet.post;
if dsCalibracao.DataSet is TClientDataSet then
begin
if (TClientDataSet(dsCalibracao.DataSet).ApplyUpdates(0) = 0)
and novo then
begin
dsCalibracao.DataSet.Refresh;
if dsCalibracao.DataSet.RecordCount > 1 then
dsCalibracao.DataSet.Last;
end;
end;
Antonio Santos
Curtidas 0
Respostas
Jones Granatyr
30/11/2016
Qual é a mensagem de erro?
GOSTEI 0
Antonio Santos
30/11/2016
não dá erro, simplesmente não grava na tabela detalhe.
só grava na tabela mestre.
só grava na tabela mestre.
GOSTEI 0