GARANTIR DESCONTO

Fórum Alterar e Excluir Registros #348398

03/11/2007

0

Olá a todos!
Sou novo no fórum e estou criando este tópico, pois estou com algumas dúvidas.

Estou desenvolvendo um sistema para uma Banca de Revistas em conjunto com colegas de escola (é o nosso TCC). Está sendo feito em Delphi 7, com Banco de Dados Firebird 1.5 e estamos usando a tecnologia dbExpress.

Estou com 2 problemas no momento:

1) Criei um form para a consulta dos clientes da banca. Quando digito até mesmo um trecho para o nome, aparece o resultado da minha pesquisa no DBGrid ao clicar no botão de pesquisa. O cadastro e a consulta estão ok.
Porém, ao selecionar a linha na DBGrid e clicar no botão Editar desse form de consultas, quero que minha aplicação volte ao formulário de cadastro totalmente preenchido com os registros da linha selecionada (já tentei ClientDataSet.Edit;). Isso não acontece e está dando um erro estranho de exception. Não sei se isso tem a ver com os DataSources dos formulários de cadastro e consulta.

2) Quero excluir o registro do meu banco. Quando seleciono a linha em questão na DBGrid e clico no botão excluir (ClientDataSet.Delete;), é apagado somente o registro na DBGrid. Ele continua intacto no Banco de Dados.

Por favor, me ajudem quanto essas dúvidas. É o primeiro sistema que desenvolvo.

Desde já agradeço!


Filipe Lemos

Filipe Lemos

Responder

Posts

04/11/2007

Picyka

Bom amigo. não so um programador de muita experiencia mais me viro bem... a principio vc deveria ter um cadastro com os botoes inserir, alterar, excluir, localizar, fechar achu que isso seria um padrao usa pela maioria ai vc cria um outro form para consulta pode ser um edit e um dbgrid ligados a query por um datasource, eu costumo usa o codigo pra busca no onchange do edit.
exemplo:

DmConsulta.sqlLocEmpresa.Close;
DmConsulta.cdsLocEmpresa.Close;
DmConsulta.sqlLocEmpresa.Params[0].AsString := editLoc.text + ´¬´;
DmConsulta.sqlLocEmpresa.Open;
DmConsulta.cdsLocEmpresa.Open;

no botao fechar da consult vc pode colocar assim
exemplo:
DmDados.CdsEmpresa.locate(´ID_EMPRESA´,DmConsulta.cdsLocEmpresaID_EMPRESA.value,[Lopartialkey,locaseinsensitive]);

quando vc acha o registro certo vc fecha a consulta e assim no cadastro fica o registro desejado.

ai vc pode manipular o registro como quiser

Editar
clientdataset.edit;

Inserir
clientdataset.insert;

Cancelar
clientdataset.cancel;

Gravar
clientDataset.ApplyUpdates(-1);// cara eu uso -1 , mais o pessoal achu que costuman usar 0( zero )

Deletar
clientdataset.delete;
clientDataset.ApplyUpdates(-1);

mais um conselhu hoje em dia trabalhase mais com uma classe de rotinas onde vc coloca esses procedimentos depois so chama eles

exemplo:

procedure GravaDados(ClienteDataset: TClientDataSet);
begin
trv.transactionid:=1;
trv.isolationlevel:=xilreadcommitted;
DmDados.Connection.StartTransaction(trv);
try
ClienteDataset.ApplyUpdates(-1);
DmDados.Connection.Commit(trv);
except
MsgErro(MSG_ERROGRAVACAO);
DmDados.Connection.Rollback(trv);
ClienteDataset.Cancel;
Exit;
end;
end;
//*********************************************************************************************************************************

procedure InserirDados(ClienteDataset: TClientDataSet);
begin
try
ClienteDataset.Insert;
except
MsgErro(MSG_INSERSAO);
ClienteDataset.Cancel;
Exit;

end;
end;
//*********************************************************************************************************************************

procedure EditarDados(ClienteDataset: TClientDataSet);
begin
try
ClienteDataset.Edit;
except
MsgErro(MSG_EDICAO);
ClienteDataset.Cancel;
Exit;
end;
end;
//*********************************************************************************************************************************

procedure CancelarDados(ClienteDataset: TClientDataSet);
begin
ClienteDataset.Cancel;
end;
//*********************************************************************************************************************************

procedure ExcluirDados(ClienteDataset: TClientDataSet);
begin
if Application.MessageBox(´Tem certeza que deseja excluir ?´, ´Aviso de Exclusão deste Registro´,
MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
begin
try
ClienteDataset.Delete;
ClienteDataset.ApplyUpdates(-1);
MsgOK(MSG_EXCLUSAO);
except
DmDados.Connection.Rollback(trv);
MsgErro(MSG_ERRO_EXCLUSAO);
Exit;
end;
end;
end;
//*********************************************************************************************************************************
bom pessoal espero que isso ajude vcs
Abraços

by Picyka


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar