Exception não responde ao dbexpress
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:
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?
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:
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
Curtidas 0
Respostas
Massuda
06/02/2007
Não trabalho com BD, mas pelo que já li por aqui, erros no ApplyUpdates são encaminhados para o evento OnReconcileError do clientdataset.
GOSTEI 0
Moura
06/02/2007
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...
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...
GOSTEI 0
Emerson Nascimento
06/02/2007
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;
GOSTEI 0
Moura
06/02/2007
Massuda e Emerson, valeu !!!
Funcionou perfeitamente.
Obrigado!
Funcionou perfeitamente.
Obrigado!
GOSTEI 0