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

Kléber Caneva kdcc em terra.com.br
Sex Maio 19 14:45:24 -03 2006


Seguinte: Você está colocando numa string então você precisa de dois 
apostrofes para indicar ao FB que é um apostrofe e não o fechamento da 
string. Veja:

Execute Statement 'Insert into teste values (''' || :wtipo || ''')';
                             /\                                   /\ 
/\  /\
                           abriu                             fechou    abriu 
fechou
esse conjuntos indicam inicio e fim da string.

o duplo apostrofe indica ao FB que não é fechamento de string e sim um 
apostrofe.

[]´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 2:01 PM
Subject: Re: [firebase-br] Execute Statement com Insert e parâmetros


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
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1148058328.479473.31237.almora.hst.terra.com.br,7710,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 19/05/2006 / Versão: 
4.4.00/4766
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista