usar quot;SET TERM ^quot;
17/12/2004
0
set term ^
grant all on imoveis to paganato with grant option;
grant all on imovel_tipo to paganato with grant option;
set term; ^
não esta funcionando no firebird, é assim mesmo ou é diferente.
Paganato
Posts
17/12/2004
Tinorj
Você só deve trocar o terminador, quando for escrever, por exemplo, a criação de uma procedure/função/trigger/e outros similares.
... SET TERM ^ ; CREATE TRIGGER TABELA1_BI FOR TABELA1 ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.REGISTRO IS NULL) THEN NEW.REGISTRO = GEN_ID(GEN_TABELA1_ID,1); END ^ CREATE TRIGGER TABELA2_BI FOR TABELA2 ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.REGISTRO IS NULL) THEN NEW.REGISTRO = GEN_ID(GEN_TABELA2_ID,1); END ^ SET TERM ; ^...
Tentando explicar o script acima:
[b:4291f2b484]SET TERM ^ ;[/b:4291f2b484] :arrow: é indicado para o interpretador dfe scripts que o terminador de comandos agora será o sinal de ´^´ (acento circunflexo);
[b:4291f2b484]^[/b:4291f2b484] :arrow: Final de Bloco
[b:4291f2b484]SET TERM ; ^[/b:4291f2b484] :arrow: é indicado para o interpretador dfe scripts que o terminador de comandos voltará a ser o sinal de ´;´ (ponto e virgula);
Mas por que trocar o terminador de comando?
- O terminador padrão do Interbase/Firebird e o sinal de ´;´ (ponto e virgula) e como dentro de uma procedure, trigger e outros, teremos que colocar vários sinais de ´;´, então para que o interpretador de scripts entenda que eu não vamos terminar o comando no primeiro ´;´ que aparecer, trocamos o terminador para o sinal de ´^´ e então desenvolvemos os processos.
Espero ter explicado, mas não esclarecido, pois ficou muito ofusco.
17/12/2004
Vinicius2k
As mudanças de terminador só são utilização na criação de SPs ou Triggers, e servem para indicar quando a SP ou a Trigger termina...
O terminador continua sendo ´;´ para as instruções, mesmo dentro de SPs e Triggers...
Vc está tentando executar estas instruções de que forma ?
Observe que queries só podem executar uma instrução de cada vez, então, vc não pode ter estes dois GRANTs na mesma execução... e também não deve existir a mudança de terminador.
Para executar scripts com várias instruções vc deve utilizar componentes específicos para isso, como o IBScript da paleta IBX. Estes componentes possuem um interpretador interno de scripts que executa as instruções uma a uma...
T+
17/12/2004
Paganato
Ele para na primeira letra da próxima linha, apos o ´;´.
vc sabe oq pode ser ?
17/12/2004
Gandalf.nho
17/12/2004
Paganato
17/12/2004
Vinicius2k
Então vc *deve* estar tentando executá-los via SQL Editor, que é o mesmo que uma query... use a ferramenta Script Executive (menu Tools)...
17/12/2004
Martins
Então vc *deve* estar tentando executá-los via SQL Editor, que é o mesmo que uma query... use a ferramenta Script Executive (menu Tools)...[/quote:e9b566b22b]
verdade, a dica do [b:e9b566b22b]Vini[/b:e9b566b22b] é quente, não tente executar esse tipo de script lá pelo [b:e9b566b22b]Editor SQL[/b:e9b566b22b], mas sim pelo [b:e9b566b22b]Script Executive[/b:e9b566b22b].
Boa sorte pra vc!
20/12/2004
Paganato
Clique aqui para fazer login e interagir na Comunidade :)