erro ao gravar tabela temporária no banco de dados
SEnhores estou tendo problemas para gravar tabelas temporária no banco de dados FirteBird, com componente Zeos. não da erro maas simplesmente não grava.
por favor me ajudem
segue o codigo abaixo:
procedure TfrProcessos.BitBtn12Click(Sender: TObject);
begin
if not Processo.Novo then //Processo já existe
begin
//Executar SQL para remover dados antigos
//1º - Clientes do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from clientesprocesso '+
' WHERE clientesprocesso.codprocesso = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Partes do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from parteprocesso '+
' WHERE parteprocesso.cod_processo= :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Testemunhas do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from testemunhaprocesso '+
' WHERE testemunhaprocesso.cod_processo = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Documentos do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from documento_processo '+
' WHERE documento_processo.cod_processo = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
end;
//GRAVAR TODOS OS DADOS DOS CLIENTDATASETS NO BANCO DE DADOS.
//Processo --------------------
Screen.Cursor := crHourGlass;
DmClient.cdsProcessos.Open;
if Processo.Novo then
begin
DmClient.cdsProcessos.Append;
DmClient.cdsProcessosCOD_PROCESSO.AsInteger := Processo.COD_PROCESSO;
InsereDadosProcesso;
end
else
begin
DmClient.cdsProcessos.First;
while not DmClient.cdsProcessos.Eof do
begin
if DmClient.cdsProcessosCOD_PROCESSO.AsInteger = Processo.COD_PROCESSO then
begin
DmClient.cdsProcessos.Edit;
InsereDadosProcesso;
DmClient.cdsProcessos.Last;
end;
DmClient.cdsProcessos.Next;
end;
end;
//Clientes ---------------------
DMClient.cdsClientesProcesso.Open;
cdsClientesProcesso.First;
while not cdsClientesProcesso.Eof do
begin
DMClient.cdsClientesProcesso.Append;
DMClient.cdsClientesProcessoCOD_PROCESSO.AsInteger := cdsClientesProcessoCOD_PROCESSO.AsInteger;
DMClient.cdsClientesProcessoCOD_CLIENTE.AsInteger := cdsClientesProcessoCOD_CLIENTE.AsInteger;
DMClient.cdsClientesProcesso.Post;
cdsClientesProcesso.Next;
end;
DMClient.cdsClientesProcesso.Close;
//Limpar clientdataset
cdsClientesProcesso.First;
while not cdsClientesProcesso.Eof do
begin
cdsClientesProcesso.Delete;
cdsClientesProcesso.Next;
end;
//Parte Contrária ---------------
DmClient.cdsParteProcesso.Open;
cdsParteProcesso.First;
while not cdsParteProcesso.Eof do
begin
DmClient.cdsParteProcesso.Append;
DmClient.cdsParteProcessoCOD_PROCESSO.AsInteger := cdsParteProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsParteProcessoCOD_PARTEPROCESSO.AsInteger := cdsParteProcessoCOD_PARTEPROCESSO.AsInteger;
DmClient.cdsParteProcesso.Post;
cdsParteProcesso.Next;
end;
DmClient.cdsParteProcesso.Close;
//Limpar clientdataset
cdsParteProcesso.First;
while not cdsParteProcesso.Eof do
begin
cdsParteProcesso.Delete;
cdsParteProcesso.Next;
end;
//Testemunhas -------------------
DmClient.cdsTestemunhaProcesso.Open;
cdsTestemunhaProcesso.First;
while not cdsTestemunhaProcesso.Eof do
begin
DmClient.cdsTestemunhaProcesso.Append;
DmClient.cdsTestemunhaProcessoCOD_PROCESSO.AsInteger := cdsTestemunhaProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsTestemunhaProcessoCOD_TESTEMUNHAPROCESSO.AsInteger := cdsTestemunhaProcessoCOD_TESTEMUNHAPROCESSO.AsInteger;
DmClient.cdsTestemunhaProcesso.Post;
cdsTestemunhaProcesso.Next;
end;
DmClient.cdsTestemunhaProcesso.Close;
//Limpar clientdataset
cdsTestemunhaProcesso.First;
while not cdsTestemunhaProcesso.Eof do
begin
cdsTestemunhaProcesso.Delete;
cdsTestemunhaProcesso.Next;
end;
//Documentos --------------------
DmClient.cdsDocumentoProcesso.Open;
cdsDocumentosProcesso.First;
while not cdsDocumentosProcesso.Eof do
begin
DmClient.cdsDocumentoProcesso.Append;
DmClient.cdsDocumentoProcessoCOD_PROCESSO.AsInteger := cdsDocumentosProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsDocumentoProcessoCOD_DOCUMENTO.AsInteger := cdsDocumentosProcessoCOD_DOCUMENTO.AsInteger;
DmClient.cdsDocumentoProcesso.Post;
cdsDocumentosProcesso.Next;
end;
DmClient.cdsDocumentoProcesso.Close;
//Limpar clientdataset
cdsDocumentosProcesso.First;
while not cdsDocumentosProcesso.Eof do
begin
cdsDocumentosProcesso.Delete;
cdsDocumentosProcesso.Next;
end;
tsProcesso.TabVisible := False;
tsCliente.TabVisible := False;
tsParte.TabVisible := False;
tsTestemunha.TabVisible := False;
tsDocumento.TabVisible := False;
tsFinaliza.TabVisible := True;
lblProcesso.Caption := ' Processo de número '+Processo.NUM_PROCESSO+' cadastrado com sucesso';
Screen.Cursor:= crDefault;
procedure TFrProcessos.InsereDadosProcesso;
begin
DmClient.cdsProcessosNUM_PROCESSO.AsString := Processo.NUM_PROCESSO;
if Processo.COD_FUNCIONARIO > 0 then
DmClient.cdsProcessosCOD_FUNCIONARIO.AsInteger := Processo.COD_FUNCIONARIO;
if Processo.TIPO_ACAO > 0 then
DmClient.cdsProcessosTIPO_ACAO.AsInteger := Processo.TIPO_ACAO;
if Processo.COD_FORUM > 0 then
DmClient.cdsProcessosCOD_FORUM.AsInteger := Processo.COD_FORUM
else
DmClient.cdsProcessosCOD_FORUM.AsVariant := null;
if Processo.VARA > 0 then
DmClient.cdsProcessosVARA.AsInteger := Processo.VARA
else
DmClient.cdsProcessosVARA.AsVariant := null;
if Processo.COD_TRIBUNAL > 0 then
DmClient.cdsProcessosCOD_TRIBUNAL.AsInteger := Processo.COD_TRIBUNAL
else
DmClient.cdsProcessosCOD_TRIBUNAL.AsVariant := null;
if Processo.CAMARA > 0 then
DmClient.cdsProcessosCOD_CAMARA.AsInteger := Processo.CAMARA
else
DmClient.cdsProcessosCOD_CAMARA.AsVariant := null;
if Processo.Turma > 0 then
DmClient.cdsProcessosCOD_TURMS.AsInteger := Processo.Turma
else
DmClient.cdsProcessosCOD_TURMS.AsVariant := null;
if Processo.ARQUIVO <> '' then
DmClient.cdsProcessosARQUIVO.AsString := Processo.ARQUIVO;
DmClient.cdsProcessos.Post;
end;
por favor me ajudem
segue o codigo abaixo:
procedure TfrProcessos.BitBtn12Click(Sender: TObject);
begin
if not Processo.Novo then //Processo já existe
begin
//Executar SQL para remover dados antigos
//1º - Clientes do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from clientesprocesso '+
' WHERE clientesprocesso.codprocesso = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Partes do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from parteprocesso '+
' WHERE parteprocesso.cod_processo= :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Testemunhas do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from testemunhaprocesso '+
' WHERE testemunhaprocesso.cod_processo = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
//1º - Documentos do processo
qryApagarRegistros.Close;
qryApagarRegistros.SQL.Clear;
qryApagarRegistros.SQL.Add('delete from documento_processo '+
' WHERE documento_processo.cod_processo = :cod_processo');
qryApagarRegistros.ParamByName('cod_processo').AsInteger := Processo.cod_processo;
qryApagarRegistros.ExecSQL;
end;
//GRAVAR TODOS OS DADOS DOS CLIENTDATASETS NO BANCO DE DADOS.
//Processo --------------------
Screen.Cursor := crHourGlass;
DmClient.cdsProcessos.Open;
if Processo.Novo then
begin
DmClient.cdsProcessos.Append;
DmClient.cdsProcessosCOD_PROCESSO.AsInteger := Processo.COD_PROCESSO;
InsereDadosProcesso;
end
else
begin
DmClient.cdsProcessos.First;
while not DmClient.cdsProcessos.Eof do
begin
if DmClient.cdsProcessosCOD_PROCESSO.AsInteger = Processo.COD_PROCESSO then
begin
DmClient.cdsProcessos.Edit;
InsereDadosProcesso;
DmClient.cdsProcessos.Last;
end;
DmClient.cdsProcessos.Next;
end;
end;
//Clientes ---------------------
DMClient.cdsClientesProcesso.Open;
cdsClientesProcesso.First;
while not cdsClientesProcesso.Eof do
begin
DMClient.cdsClientesProcesso.Append;
DMClient.cdsClientesProcessoCOD_PROCESSO.AsInteger := cdsClientesProcessoCOD_PROCESSO.AsInteger;
DMClient.cdsClientesProcessoCOD_CLIENTE.AsInteger := cdsClientesProcessoCOD_CLIENTE.AsInteger;
DMClient.cdsClientesProcesso.Post;
cdsClientesProcesso.Next;
end;
DMClient.cdsClientesProcesso.Close;
//Limpar clientdataset
cdsClientesProcesso.First;
while not cdsClientesProcesso.Eof do
begin
cdsClientesProcesso.Delete;
cdsClientesProcesso.Next;
end;
//Parte Contrária ---------------
DmClient.cdsParteProcesso.Open;
cdsParteProcesso.First;
while not cdsParteProcesso.Eof do
begin
DmClient.cdsParteProcesso.Append;
DmClient.cdsParteProcessoCOD_PROCESSO.AsInteger := cdsParteProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsParteProcessoCOD_PARTEPROCESSO.AsInteger := cdsParteProcessoCOD_PARTEPROCESSO.AsInteger;
DmClient.cdsParteProcesso.Post;
cdsParteProcesso.Next;
end;
DmClient.cdsParteProcesso.Close;
//Limpar clientdataset
cdsParteProcesso.First;
while not cdsParteProcesso.Eof do
begin
cdsParteProcesso.Delete;
cdsParteProcesso.Next;
end;
//Testemunhas -------------------
DmClient.cdsTestemunhaProcesso.Open;
cdsTestemunhaProcesso.First;
while not cdsTestemunhaProcesso.Eof do
begin
DmClient.cdsTestemunhaProcesso.Append;
DmClient.cdsTestemunhaProcessoCOD_PROCESSO.AsInteger := cdsTestemunhaProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsTestemunhaProcessoCOD_TESTEMUNHAPROCESSO.AsInteger := cdsTestemunhaProcessoCOD_TESTEMUNHAPROCESSO.AsInteger;
DmClient.cdsTestemunhaProcesso.Post;
cdsTestemunhaProcesso.Next;
end;
DmClient.cdsTestemunhaProcesso.Close;
//Limpar clientdataset
cdsTestemunhaProcesso.First;
while not cdsTestemunhaProcesso.Eof do
begin
cdsTestemunhaProcesso.Delete;
cdsTestemunhaProcesso.Next;
end;
//Documentos --------------------
DmClient.cdsDocumentoProcesso.Open;
cdsDocumentosProcesso.First;
while not cdsDocumentosProcesso.Eof do
begin
DmClient.cdsDocumentoProcesso.Append;
DmClient.cdsDocumentoProcessoCOD_PROCESSO.AsInteger := cdsDocumentosProcessoCOD_PROCESSO.AsInteger;
DmClient.cdsDocumentoProcessoCOD_DOCUMENTO.AsInteger := cdsDocumentosProcessoCOD_DOCUMENTO.AsInteger;
DmClient.cdsDocumentoProcesso.Post;
cdsDocumentosProcesso.Next;
end;
DmClient.cdsDocumentoProcesso.Close;
//Limpar clientdataset
cdsDocumentosProcesso.First;
while not cdsDocumentosProcesso.Eof do
begin
cdsDocumentosProcesso.Delete;
cdsDocumentosProcesso.Next;
end;
tsProcesso.TabVisible := False;
tsCliente.TabVisible := False;
tsParte.TabVisible := False;
tsTestemunha.TabVisible := False;
tsDocumento.TabVisible := False;
tsFinaliza.TabVisible := True;
lblProcesso.Caption := ' Processo de número '+Processo.NUM_PROCESSO+' cadastrado com sucesso';
Screen.Cursor:= crDefault;
procedure TFrProcessos.InsereDadosProcesso;
begin
DmClient.cdsProcessosNUM_PROCESSO.AsString := Processo.NUM_PROCESSO;
if Processo.COD_FUNCIONARIO > 0 then
DmClient.cdsProcessosCOD_FUNCIONARIO.AsInteger := Processo.COD_FUNCIONARIO;
if Processo.TIPO_ACAO > 0 then
DmClient.cdsProcessosTIPO_ACAO.AsInteger := Processo.TIPO_ACAO;
if Processo.COD_FORUM > 0 then
DmClient.cdsProcessosCOD_FORUM.AsInteger := Processo.COD_FORUM
else
DmClient.cdsProcessosCOD_FORUM.AsVariant := null;
if Processo.VARA > 0 then
DmClient.cdsProcessosVARA.AsInteger := Processo.VARA
else
DmClient.cdsProcessosVARA.AsVariant := null;
if Processo.COD_TRIBUNAL > 0 then
DmClient.cdsProcessosCOD_TRIBUNAL.AsInteger := Processo.COD_TRIBUNAL
else
DmClient.cdsProcessosCOD_TRIBUNAL.AsVariant := null;
if Processo.CAMARA > 0 then
DmClient.cdsProcessosCOD_CAMARA.AsInteger := Processo.CAMARA
else
DmClient.cdsProcessosCOD_CAMARA.AsVariant := null;
if Processo.Turma > 0 then
DmClient.cdsProcessosCOD_TURMS.AsInteger := Processo.Turma
else
DmClient.cdsProcessosCOD_TURMS.AsVariant := null;
if Processo.ARQUIVO <> '' then
DmClient.cdsProcessosARQUIVO.AsString := Processo.ARQUIVO;
DmClient.cdsProcessos.Post;
end;
Antonio Santos
Curtidas 0