Ganchos feitos sob encomenda em TierDeveloper
| by Ann Morris | January 07, 2005
Os ganchos feitos sob encomenda são outra de uma característica poderosa e a maioria exijindo fornecida por TierDeveloper. Os ganchos feitos sob encomenda trabalham como disparadores da base de dados. Poderia ser sua própria lógica do negócio que você pode ativar antes ou depois de executar algumas ações da base de dados. PreHooks e PostHooks são duas maneiras, desde que por TierDeveloper, através de que você pode encaixar sua própria lógica no código gerado. Os métodos do gancho são chamados Pre antes que o acesso de base de dados esteja executado visto que os métodos do gancho do borne estão chamados depois que as operações da base de dados são executadas.
Os ganchos feitos sob encomenda podem ser especificados onde quer que o acesso de base de dados é executado. Inclui operações padrão, métodos da pergunta, operações maiorias e operações feitas sob encomenda. O usuário pode gerar o código de esqueleto para os ganchos feitos sob encomenda dos métodos selecionados ou he/she pode usar his/sua própria classe dos ganchos.
Para suas conveniência e compreensão melhor eu alistei o código da amostra aqui que mostra como TierDeveloper encaixa os ganchos feitos sob encomenda no código gerado. É self-explanatory.public bonito UpdateCustomerInfo vago (objInfo) dos clientes {a tentativa {… ……. ..........……. ....... CustomersHooks engancha = CustomersHooks novo (); status = hooks.PreUpdateCustomerInfo (getConnection (System.Data.SqlClient.SqlConnection) (), objInfo); se (status! = CustomersHooks.SUCCESS_CONTINUE) {SetStatus (== CustomersHooks.FAIL_NONCONTINUE do status? EStatus.eFail: EStatus.eSuccess); ReleaseCommand (); retorno;}AddCmdParameter (“@CompanyName”, TDevFramework.EDataType.eVarchar, objInfo.CompanyName, TDevFramework.EParamDirection.eInput, objInfo.IsNull (“CompanyName”)); … ……. ..........……. ..........……. ....... ExecuteNonQuery (); status = hooks.PostUpdateCustomerInfo (getConnection (System.Data.SqlClient.SqlConnection) (), objInfo); se (status! = CustomersHooks.SUCCESS_CONTINUE) {… ……. ..........……. ....... retorno;}SetStatus (EStatus.eSuccess); ReleaseCommand ();}prendedor (exceção e) {… ……. ..........……. ....... throw e;}} classe pública CustomersHooks {const público interno SUCCESS_CONTINUE = 0; const público interno SUCCESS_NONCONTINUE = 1; const público interno FAIL_NONCONTINUE = 2; PreUpdateCustomerInfo interno público (objInfo da conexão, dos clientes de System.Data.SqlClient.SqlConnection) {/. //. Pôr seu próprio herereturn SUCCESS_CONTINUE do código;}PostUpdateCustomerInfo interno público (objInfo) da conexão, dos clientes de System.Data.SqlClient.SqlConnection {//. //. pôr seu próprio código here.return SUCCESS_CONTINUE;}}
Os ganchos feitos sob encomenda podem ser especificados onde quer que o acesso de base de dados é executado. Inclui operações padrão, métodos da pergunta, operações maiorias e operações feitas sob encomenda. O usuário pode gerar o código de esqueleto para os ganchos feitos sob encomenda dos métodos selecionados ou he/she pode usar his/sua própria classe dos ganchos.
Para suas conveniência e compreensão melhor eu alistei o código da amostra aqui que mostra como TierDeveloper encaixa os ganchos feitos sob encomenda no código gerado. É self-explanatory.public bonito UpdateCustomerInfo vago (objInfo) dos clientes {a tentativa {… ……. ..........……. ....... CustomersHooks engancha = CustomersHooks novo (); status = hooks.PreUpdateCustomerInfo (getConnection (System.Data.SqlClient.SqlConnection) (), objInfo); se (status! = CustomersHooks.SUCCESS_CONTINUE) {SetStatus (== CustomersHooks.FAIL_NONCONTINUE do status? EStatus.eFail: EStatus.eSuccess); ReleaseCommand (); retorno;}AddCmdParameter (“@CompanyName”, TDevFramework.EDataType.eVarchar, objInfo.CompanyName, TDevFramework.EParamDirection.eInput, objInfo.IsNull (“CompanyName”)); … ……. ..........……. ..........……. ....... ExecuteNonQuery (); status = hooks.PostUpdateCustomerInfo (getConnection (System.Data.SqlClient.SqlConnection) (), objInfo); se (status! = CustomersHooks.SUCCESS_CONTINUE) {… ……. ..........……. ....... retorno;}SetStatus (EStatus.eSuccess); ReleaseCommand ();}prendedor (exceção e) {… ……. ..........……. ....... throw e;}} classe pública CustomersHooks {const público interno SUCCESS_CONTINUE = 0; const público interno SUCCESS_NONCONTINUE = 1; const público interno FAIL_NONCONTINUE = 2; PreUpdateCustomerInfo interno público (objInfo da conexão, dos clientes de System.Data.SqlClient.SqlConnection) {/. //. Pôr seu próprio herereturn SUCCESS_CONTINUE do código;}PostUpdateCustomerInfo interno público (objInfo) da conexão, dos clientes de System.Data.SqlClient.SqlConnection {//. //. pôr seu próprio código here.return SUCCESS_CONTINUE;}}
Article Source: http://www.articleset.com

You are welcome to publish or reprint this article free of charge, provided:
- you include the entire article, unchanged, including the "About The Author" box
- all hyperlinks remain active, including the bottom ArticleSet.com link (does not apply to print publications)
- you agree not to hold the authors nor ArticleSet.com liable for any loss profits, expenses, or any other damages resulting from the use or misuse of articles published on this website