Fórum ADOStoredProc em master detalhe com transação #347866
24/10/2007
0
Olá, estou com a seguinte dúvida estou trabalhando em um sistema que as manipulações de dados são feitas através de StoredProcedure (ADO) com SQLServer 2000.A dúvida está em um cadastro de master detalhe de Cliente e produtos, tendo um cliente, vários produtos alguém sabe se está correto?Em que posso melhorar meu código?Obrigado!
=======Delphi 7========================
=========================================
=====SQL Server 2000=========================
==========================================
=======Delphi 7========================
procedure TFrmCadCliente.cadCliente(nome, CPF: string); var i: Integer; begin try DM.ADOConnection.BeginTrans; with ADOStoredProc do begin Close; ProcedureName := ´cadCliente´; Prepared := True; Parameters.Refresh; //Zerando parêmetros do ADOStoredProc for i := 0 to Parameters.Count - 1 do Parameters[i].Value := 0; //Alimentando parâmetros Parameters.ParamByName(´@nmCliente´).Value := nome; Parameters.ParamByName(´@CPF´).Value := CPF; ExecProc; //Caso @@Error retornar zero Executa procedure dos detalhes Produtos do cliente if Parameters.ParamByName(´@RETURN_VALUE´).Value = 0 then DM.commitTransaction; end; except//Em caso de algum problema na gravação do master"cliente" ou do detalhe "produto" executa o rollback ShowMessage(´Erro ao gravar cliente´); DM.ADOConnection.RollbackTrans; end; end;
=========================================
=====SQL Server 2000=========================
CREATE PROCEDURE cadCliente @nmCliente varchar(205), @CPF varchar(14), @novoCodigo int output AS INSERT INTO CLIENTE VALUES (@nmCliente, @CPF) SET @novoCodigo= (SELECT @@IDENTITY) RETURN @@ERROR GO
==========================================
Joaohenriquemf
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)