GARANTIR DESCONTO

Fórum Exception não responde ao dbexpress #337425

06/02/2007

0

Amigos mais uma vez preciso da ajuda...
Utilizo FB 1.5

fiz a seguinte Trigger (que funciona perfeitamente):

[i:24fab46266]/******************************************************************************/
/*** Generated by IBExpert 2006.06.05 06/02/2007 16:39:01 ***/
/******************************************************************************/

CREATE EXCEPTION MSG_TAMANHO1 ´Já existe tamanho cadastrado. Por favor, verifique...´;

/******************************************************************************/
/*** Tables ***/
/******************************************************************************/

CREATE TABLE CAD_TAMANHOS (
FILIAL INTEGER NOT NULL,
CODIGO ICODIGO NOT NULL,
TAMANHO SCODIGO,
DESCRICAO SNOME,
PRIMARY KEY (FILIAL, CODIGO)
);


/******************************************************************************/
/*** Triggers for tables ***/
/******************************************************************************/

CREATE TRIGGER CAD_TAMANHOS_0 FOR CAD_TAMANHOS

ACTIVE BEFORE INSERT OR UPDATE POSITION 0

AS
DECLARE VARIABLE numrows INTEGER;
begin
/* contar quantos tamanhos existem semelhante ao que o usuário estiver cadastrando */
select count(new.tamanho) from cad_tamanhos into numrows;

/* Se for maior que 1, então já existe e exibe a mensagem ao usuario */
IF (numrows >=1 ) THEN
BEGIN
EXCEPTION msg_tamanho1;
END

end [/i:24fab46266]

Conforme figura abaixo no IBEXPERT quando tento gravar a linha com o Tamanho repetido ele mostra a mensagem de erro:
[img:24fab46266]http://www.isoftpr.com.br/ibexpert.JPG[/img:24fab46266]

Mas o DBEXPRESS quando clicar em gravar ( incluindo ApplyUpdate(0) ), não mostra ao usuario a mensagem que que deveria. Utilizo o ´SimpleDataSet´.

No componente ZEOSDBO ele mostra a mensagem ao tentar gravar. Somente no DBEXPRESS que não mostra a mensagem...

Como fazer para que o DBEXPRESS mostre a mensagem do servidor ao usuário?


Moura

Moura

Responder

Posts

06/02/2007

Massuda

Não trabalho com BD, mas pelo que já li por aqui, erros no ApplyUpdates são encaminhados para o evento OnReconcileError do clientdataset.


Responder

Gostei + 0

06/02/2007

Moura

Olá Massuda!

Quanto ao ApplyUpdate não há problema... quanto a isso está tudo ok.
O problema é que o DBEXPRESS não mostra a mensagem (exception) que criei no servidor. Esse é o X da questão.

Outros componentes ( IBX, ZEOS ) mostraram a mensagem no momento que tenta gravar com o tamanho já existente. Esses componentes retornam a mensagem perfeitamente. Somente nosso amigo DBEXPRESS que não mostra...


Responder

Gostei + 0

06/02/2007

Emerson Nascimento

como disse o Massuda, tente o evento OnReconcileError do dataset.
procedure TForm1.SimpleDataSet1ReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  ShowMessage(E.Message);
end;



Responder

Gostei + 0

06/02/2007

Moura

Massuda e Emerson, valeu !!!

Funcionou perfeitamente.

Obrigado!


Responder

Gostei + 0

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

Aceitar