[firebase-br] RES: insert/update/delete usando argumento string.

Jose Aparecido da Silva - Fasystem listas em fasystem.com.br
Seg Set 20 22:54:16 -03 2010


Provavelmente voce definiu o campo como char.
Esse tipo de campo guarda o conteúdo que você gravou e preenche o restante
do campo com espaços. Ex: 
Campo char(10) e você atribui o valor '1'. No campo ele será guardado assim:
'1         '. Entendeu? 
Provavelmente seja esse o problema.

[ ]'s
Jose Aparecido da Silva
Fasystem


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Clayton Silva
Enviada em: segunda-feira, 20 de setembro de 2010 18:54
Para: FireBase
Assunto: Re: [firebase-br] insert/update/delete usando argumento string.

Renan,

Primeiro quero agradecer a atenção...

mas o que você me disse, não deu certo...

este comando não é executado dentro de uma procedure e sim dentro de uma
função na
minha aplicação... e o que me deixa mais intrigado é que quando é um campo
numerico na 
base de dados... encontra o registro corretamente... por exemplo:

se executo isso: 
long ll_empresa
ll_empresa = 1
select * from impressora_fiscal where cd_empresa = :ll_empresa;

este comando... ele encontra na base, mas se o campo for string na base de
dados nao encontra.

Entendeu? Acredito que o problema seja a STRING, mas sinceramente, não sei o
que pode ser...
e nao estou conseguindo resolver...

Se puder me ajudar, agradeço..

Clayton Silva


----- Mensagem original -----
De: Renan Cruz de Almeida <renan.aju em terra.com.br>
Para: FireBase <lista em firebase.com.br>
Enviadas: Sat, 18 Sep 2010 09:56:24 -0300 (GMT-03:00)
Assunto: Re: [firebase-br] insert/update/delete usando argumento string.



Prezado, se lembro bem, a variável dentro da procedure não deveria ser 
referendada com os dois pontos ...

2- ls_msg = 'ABC123'

     select * from impressora_fiscal where nr_serie_impressora = :ls_msg;


Deveria ser :

2- ls_msg = 'ABC123'

     select * from impressora_fiscal where nr_serie_impressora = ls_msg;




E no caso os dois pontos você usará quando a variável for parâmetro da 
procedure ...

create procedure impressora(ls_msg varchar(6))
...
...
as
begin
  ...
  ....
  select * from impressora_fiscal where nr_serie_impressora = :ls_msg;
  ....
  ...
end



Espero ter ajudado.

[]'s
Renan


> Pessoal, boa tarde!
>
>
>
> Estou com o seguinte problema,
>
> Quando executo o comando 1 na minha função, ele retorna o registro
> encontrado,
>
> 1 - Select * from impressora_fiscal where nr_serie_impressora = 'ABC123';
>
>
>
> Porém se passo uma variavel ou estrutura (comando 2) é retornado do banco
> que não encontrou o registro, SQLCODE = 100 e SQLDBCODE = 3
>
> 2- ls_msg = 'ABC123'
>
>      select * from impressora_fiscal where nr_serie_impressora = :ls_msg;
>
>
>
> Se faço o comando 3, ele realiza update corretamente...
>
> 3 - Update impressora_fiscal set id_situacao = 'P'
>
>       where nr_serie_impressora = 'ABC123';
>
>
>
> Se faço o comando 4, ele realiza o update SQLCODE = 0 e SQLNROWS = 1,
porém
>
> na base ele muda o id_situacao para nulo...
>
> 4 - ls_msg = 'ABC123'
>
>       Update impressora_fiscal set id_situacao = :ls_msg
>
>       where nr_serie_impressora = 'ABC123';
>
>
>
> Ou seja, não consigo fazer update nem select utilizando estrutura ou uma
> variável que vem populada de outra função, desde que o campo na tabela
seja
> string....já que os comandos 5 e 6 funcionam corretamente...
>
> 5 - update impressora_cupom_fiscal set id_nota_fiscal = id_nota_fiscal +
> 1000;
>
> 6 - astr_impressora_cupom_fiscal.id_nota_fiscal = 1000
>
>       update impressora_cupom_fiscal set id_nota_fiscal = id_nota_fiscal -
> :astr_impressora_cupom_fiscal.id_nota_fiscal;
>
>
>
> Com isso detectei que o problema é com string... mas sinceramente... to
> doido aqui...
>
> nao sei o q pode ser...
>
>
>
> Se alguem puder me ajudar,,, desde já agradeço..
>
>
>
>
> Max Ferreira Silva
> Telefone: +55 (34) 3235-9233
>
> informa em informasistemas.com.br
> informaic em netsite.com.br
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
----------------------------------------------------------------------------
-----------------------
> Texto inserido por Panda IS 2010:
>
>   Trata-se de uma mensagem não solicitada (SPAM), clique no link para
classificá-la novamente:
http://localhost:6083/Panda?ID=pav_5510&SPAM=true&path=C:\Documents%20and%20
Settings\renan\Configurações%20locais\Dados%20de%20aplicativos\Panda%20Secur
ity\Panda%20Internet%20Security%202010\AntiSpam
>
----------------------------------------------------------------------------
-----------------------
>
>



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista