Re: [firebase-br] Execute Statement com Insert e parâmetros

Andrei Luís compuvale.software em gmail.com
Sex Maio 19 14:01:55 -03 2006


Grande Kléber... funcionou...

Só fiquei com um dúvida, copiei e colei o código que tu colocou e funcionou,
tu falou em duplo apostrofe ao inves de aspas, entendo por isso que seja ",
mas o código que tu passou tem tres aspas, não tem apóstrofe. Como fica
então?

Bem, o fato é que com três aspas + dois pipes + o parametro + dois pipes + 3
aspas funcinou...

Novamente, obrigado.

[]
Andrei


Em 19/05/06, Kléber Caneva <kdcc em terra.com.br> escreveu:
>
> Tenta assim:
>
> wtipo = 'RF';
>
> Execute Statement 'Insert into teste values (''' || :wtipo || ''')';
>
> É preciso do duplo apostrofe (não aspas) por que o tipo é string..
>
> []´s
>
> Kléber Caneva
>
>
>
> ----- Original Message -----
> From: "Andrei Luís" <compuvale.software em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, May 19, 2006 10:44 AM
> Subject: Re: [firebase-br] Execute Statement com Insert e parâmetros
>
>
> Alisson, obrigado pelas respostas.
>
> Você disse em outra msg que não fez Execute Statement com Insert, somente
> Grant e Revoke, acho (é um chute) que com grant e revoke não dá problema,
> pois o usuário é tratado como um objeto, ou seja o nome do usuário não é
> um
> dado em uma tabela...
>
> Em Delphi consigo fazer, mas gostaria de passar essa rotina para o banco,
> trata-se de uma rotina de faturamento.
>
> Enfim... continuo apanhando...
>
> []
> Andrei
>
>
> Em 19/05/06, Alisson <arsuart em uol.com.br> escreveu:
> >
> > Olha soh o exemplo q tenho em uma SP...
> > q utilizo o execute Statement..
> >
> >             If (:Direito = 'R') Then
> >                 Atributo = 'References';
> >             Else If (:Direito = 'I') then
> >                     Atributo = 'Insert';
> >                  Else If (:Direito = 'U') Then
> >                          Atributo = 'Update';
> >                       Else If (:Direito = 'D') Then
> >                               Atributo = 'Delete';
> >                            Else If (:Direito = 'S') Then
> >                                    Atributo = 'Select';
> >
> >              If (:Tipo = 'G') Then
> >                 Execute statement
> >                         'Grant '||:Atributo||' on '||:nome_tabela||' To
> > '||:user_name||';';
> >              If (:Tipo = 'R') Then
> >                 Execute statement
> >                         'Revoke '||:Atributo||' on '||:nome_tabela||'
> From
> > '||:user_name||';';
> >         End
> >
> > Isso aqui funciona sem problema....!!!
> >
> > e no delphi faço o exemplo q mandei na mensagem anterior...!!!
> >
> > --
> > Alisson R.S.
> > Global Soft - Desenvolvimento de Sistemas
> >
> > "Andrei Luís" <compuvale.software em gmail.com>
> > escreveu na mensagem
> > news:bae8f99c0605181415k27a74b59p84b45b4599a99886 em mail.gmail.com...
> > Olá,
> >
> > Tô me batendo a tarde inteira por uma coisa básica...
> >
> > Em uma SP quero fazer um insert atraves de execute statement usando
> > parâmetros no insert, +/-, vou enumerar as formas que tentei e os
> > respectivos erro:
> >
> > 1)
> > wtipo = 'RF';
> > Execute Statement 'Insert into teste values ( :wtipo )';
> > Column Unknow WTIPO
> >
> > 2)
> > wtipo = '''RF''';  -- <- tres aspas simples RF e mais tres aspas simples
> > Execute Statement 'Insert into teste values ( :wtipo )';
> > Arithmetic overflow or division by zero ....
> >
> > 3)
> > wtipo = '''RF''';  -- <- tres aspas simples RF e mais tres aspas simples
> > Execute Statement 'Insert into teste values (' || :wtipo || ')';
> > Arithmetic overflow or division by zero ....
> >
> > 4)
> > wtipo = 'RF';
> > Execute Statement 'Insert into teste values (' || :wtipo || ')';
> > Column Unknow WTIPO
> >
> > Também preciso de uma dica usar uma variavel integer no execute
> statement
> > e
> > gravá-la em um campo string, usei cast(wtipo as varchar(2)) e estou
> tendro
> > problema
> >
> > []s
> > Andrei
> >
> > FB 1.5.2
>



Mais detalhes sobre a lista de discussão lista