| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mai 02, 2019 6:20 pm Assunto: |
|
|
Boa noite,
Experimente deixar o código da seguinte forma:
| Código: | if (new.flag_star <> 0) then
begin
new.flag_star = 0;
end |
Espero que ajude
Editado pela última vez por imex em Seg Set 20, 2021 10:08 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mai 03, 2019 10:04 am Assunto: |
|
|
| Experimente tirar esse If do código. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mai 03, 2019 11:05 am Assunto: |
|
|
Experimente fazer uns testes dessa forma:
| Código: | if (old.flag_star = 1) then
new.flag_star = 0; |
Espero que ajude |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Mai 03, 2019 11:45 am Assunto: |
|
|
| imex escreveu: | Experimente fazer uns testes dessa forma:
| Código: | if (old.flag_star = 1) then
new.flag_star = 0; |
Espero que ajude |
Parece que assim funciona, mais me tire outra duvida
Na tabela tenho flag_star varios = null e 2 flag_star = 0
Porque se eu fizer o select assim
| Código: | | SELECT * FROM clientes WHERE flag_star <> 1 |
Mostra apenas os 2 que estão com flag-star = 0?
O modo correto deste select é assim?
| Código: | | SELECT * FROM clientes WHERE (flag_star = 0 or flag_star is null) |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mai 03, 2019 12:05 pm Assunto: |
|
|
| Null não é igual a nada e também não é diferente de nada, por isso é necessário usar o is ou is not para verificar se é nulo ou não. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Mai 13, 2019 10:10 am Assunto: |
|
|
Bom dia, sobre a trigger tem como adaptar esta trigger
| Código: | CREATE OR ALTER TRIGGER TRIG_CLIENTEPRODUTOS FOR CLIENTEPRODUTOS
ACTIVE BEFORE UPDATE OR DELETE POSITION 0
AS
begin
/* Trigger text */
if (new.ID_SYNC = '?') then
new.ID_SYNC = 'N';
else
new.ID_SYNC = 'S';
end |
com esta
| Código: | CREATE OR ALTER TRIGGER TRIG_CLIENTEPRODUTOS_SINC_STAR FOR CLIENTEPRODUTOS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
if (old.sinc_star = 'N') then
new.sinc_star = 'S';
end |
Todos as duas em uma unica trigger?
E se eu modificar ela de before para after vai funcionar? Ou tenho que mudar a forma?
Obrigado. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Mai 13, 2019 12:10 pm Assunto: |
|
|
Bom dia,
Acho que você pode juntar os códigos, mas pelo que vi não é possível modificar os valores em caso de Delete, e pra ser sincero não entendi porque modificar se está sendo excluído.
Quanto ao After, para modificar valores deve ser utilizado o Before mesmo. No After as variáveis New são somente leitura.
Espero que ajude |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Mai 13, 2019 12:46 pm Assunto: |
|
|
| imex escreveu: | Bom dia,
Acho que você pode juntar os códigos, mas pelo que vi não é possível modificar os valores em caso de Delete, e pra ser sincero não entendi porque modificar se está sendo excluído.
Quanto ao After, para modificar valores deve ser utilizado o Before mesmo. No After as variáveis New são somente leitura.
Espero que ajude |
Boa tarde,
Parece que o delete não esta sendo executado nesta trigger,
Se eu deixar no before mesmo como seria este juntar os 2? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Mai 14, 2019 9:23 am Assunto: |
|
|
Bom dia,
Segue exemplo:
| Código: | CREATE OR ALTER TRIGGER TRIG_CLIENTEPRODUTOS FOR CLIENTEPRODUTOS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
if (new.ID_SYNC = '?') then
new.ID_SYNC = 'N';
else
new.ID_SYNC = 'S';
if (old.sinc_star = 'N') then
new.sinc_star = 'S';
end |
Espero que ajude |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
|