Fórum TADODATASET X SQL Server #373213
06/08/2009
0
Prezados.
Fiz um SQL com um left join, o TADODataset esta excluindo o registro da chave estrangeira, não tem foreign key ou trigger no SQL Server, eu fazia isto antes no IBDATASet /Firebird a diferença era que eu construia o Update, delete.. Aqui só faço o Select. Desabilitei o ProviderFlags do campo descrição da tabela estrangeira, mas não funcionou.
Acho que o TADODATAset esta gerando um delete para cada tabela, um para tabela de usuário e outro para tabela de setores(FK)
se alguém puder ajudar, desde já agradeço
Flávio
Fiz um SQL com um left join, o TADODataset esta excluindo o registro da chave estrangeira, não tem foreign key ou trigger no SQL Server, eu fazia isto antes no IBDATASet /Firebird a diferença era que eu construia o Update, delete.. Aqui só faço o Select. Desabilitei o ProviderFlags do campo descrição da tabela estrangeira, mas não funcionou.
Acho que o TADODATAset esta gerando um delete para cada tabela, um para tabela de usuário e outro para tabela de setores(FK)
se alguém puder ajudar, desde já agradeço
Flávio
Frcjf
Curtir tópico
+ 0
Responder
Posts
07/08/2009
Elip2008
tenta criar uma query automaticamente, pq ele vai tentar apagar a linha toda, ateh a q está com os dados master mesmo q vc não tenha feito o master detail o meu fik mais ow menos assim, declaro a var qry: TAdoQuery; e faço assim:
if not SeuAdoDataSet.isEmpty then
begin
if MessageDlg(´Deseja mesmo excluir o registro selecionado?´, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
try
qry := TADOQuery.Create(Self);
qry.Connection := minhaConexao;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(´delete from tabela_filha where id=´+IntToStr(SeuAdoDataSetid.AsInteger));//coloca o campo ID do seu adodataset;
qry.ExecSql;
ShowMessage(´Registro excluído com sucesso!´);
finally
FreeAndNil(qry);
end;
end else
begin
Abort;
end;
end else
begin
ShowMessage(´Por favor, verifique o parâmetro da pesquisa.´);
end;
Abs.
if not SeuAdoDataSet.isEmpty then
begin
if MessageDlg(´Deseja mesmo excluir o registro selecionado?´, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
try
qry := TADOQuery.Create(Self);
qry.Connection := minhaConexao;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(´delete from tabela_filha where id=´+IntToStr(SeuAdoDataSetid.AsInteger));//coloca o campo ID do seu adodataset;
qry.ExecSql;
ShowMessage(´Registro excluído com sucesso!´);
finally
FreeAndNil(qry);
end;
end else
begin
Abort;
end;
end else
begin
ShowMessage(´Por favor, verifique o parâmetro da pesquisa.´);
end;
Abs.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)