[firebase-br] Socorro! Preciso de ajuda Urgente!

Eduardo Jedliczka eduardo em gerasoftinfo.com.br
Sex Dez 10 16:06:14 -03 2004


Henrique como disse sua lógica está errada...

O FB executará o sub-select para cada registro da tabela INF, Ou seja, irá
mudar o retorno de acoro com a where do seu sub-select.

faça um teste, troque o seu update por um select e entenderá o que digo. Só
um detalhe, do jeito que você projetou este select pode demorar algumas
horas dependendo da quantidade de registro que você tem... (tenho a
impressão que você não sabe utilizar SUM e/ou Inner Joins)

select inf.inf_comiss,
(SELECT  First 1 p.compro_com
FROM comproduto p
 WHERE p.pro_codigo = inf.pro_codigo
 AND p.pes_cod_rep IN
 (SELECT pe.pes_codigo
 FROM pesend pe, catpes cp
WHERE pe.uf_codigo  = 'SC'
  AND pe.pes_codigo = cp.pes_codigo
     AND cp.cat_codigo = 1)
  AND p.compro_dtval >= '11/30/2004')
WHERE inf.inf_comiss = 0
 AND inf.nf_numero IN
 (SELECT n.nf_numero
   FROM nota n
  WHERE n.nf_dtproc BETWEEN '10/01/2004' AND  '11/30/2004') as valornovo
from itemnf inf


[s]

=====================
Eduardo Jedliczka
GeraSoft Informática
Apucarana - PR
=====================
----- Original Message ----- 
From: "Henrique Ribeiro" <ribeiro em w7solucoes.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, December 10, 2004 3:45 PM
Subject: Re: [firebase-br] Socorro! Preciso de ajuda Urgente!


> Boa tarde Eduardo,
>
> Eu realmente gostaria de atualizar todos os registros que estiverem com a
> "inf.inf_comiss = 0"
> mas minha dúvida é se o SELECT FIRST 1  não iria trazer apenas 1 registro
(5
> por exemplo) e jogar em todas as linhas o mesmo valor (5).
> É isso mesmo? ou irá mudar o retorno sempre? (numa vez5  noutra 8, etc)?
> Desculpe o amadorismo mas essa dúvida realmente me pegou.
>
> Sucesso à todos!
>
> [  ]'s
>
> lher
>
> ----- Original Message -----
> From: "Eduardo Jedliczka" <eduardo em gerasoftinfo.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, December 10, 2004 3:03 PM
> Subject: Re: [firebase-br] Socorro! Preciso de ajuda Urgente!
>
>
> > Henrique,
> >
> > Você pediu para atualizar TODOS os registros!!! Independente de
condição,
> > pois o seu update não tem where!!!
> >
> > No seu sub-select você está retornando vários valores e daí o banco não
> sabe
> > qual deles deve atualizar o campo inf.inf_comiss.
> >
> > Acho que você se enganou em algum ponto (where do update com where do
> > sub-select)
> >
> > pegue o IBConsole ou IBExpert e teste o seu comando...
> >
> > [s]
> >
> > =====================
> > Eduardo Jedliczka
> > GeraSoft Informática
> > Apucarana - PR
> > =====================
> >
> > ----- Original Message -----
> > From: "Henrique Ribeiro" <ribeiro em w7solucoes.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Friday, December 10, 2004 2:47 PM
> > Subject: Re: [firebase-br] Socorro! Preciso de ajuda Urgente!
> >
> >
> > > Mas assim eu não estarei atualizando TODOS os registros que atenderem
a
> > > condição com um único (SELECT FIRST 1) valor?
> > > Ou ele vai passando um de cada vez?
> > >
> > > [  ]'s
> > >
> > > lher
> > > ----- Original Message -----
> > > From: "Josauro S.J." <josauro em casasoft.inf.br>
> > > To: "FireBase" <lista em firebase.com.br>; "Carlos H. Cantu"
> > > <listas em warmboot.com.br>
> > > Sent: Friday, December 10, 2004 2:33 PM
> > > Subject: Re: [firebase-br] Socorro! Preciso de ajuda Urgente!
> > >
> > >
> > > > A tua condição esta retornando mais de um registro, mude a condicão
ou
> > > coloque SELECT FIRST 1....
> > > >
> > > > Josauro S.J.
> > > > Diretor
> > > > josauro em casasoft.inf.br
> > > > ----- Original Message -----
> > > > From: Henrique Ribeiro
> > > > To: Carlos H. Cantu ; FireBase
> > > > Sent: Friday, December 10, 2004 2:12 PM
> > > > Subject: [firebase-br] Socorro! Preciso de ajuda Urgente!
> > > >
> > > >
> > > > Pessoal,
> > > >
> > > > Preciso rodar este SCPRIPT:
> > > >
> > > > UPDATE itemnf inf SET inf.inf_comiss =
> > > >   (SELECT p.compro_com
> > > >     FROM comproduto p
> > > >     WHERE p.pro_codigo = inf.pro_codigo
> > > >     AND p.pes_cod_rep IN
> > > >      (SELECT pe.pes_codigo
> > > >        FROM pesend pe, catpes cp
> > > >        WHERE pe.uf_codigo  = 'SC'
> > > >        AND pe.pes_codigo = cp.pes_codigo
> > > >        AND cp.cat_codigo = 1)
> > > >     AND p.compro_dtval >= '11/30/2004')
> > > > WHERE inf.inf_comiss = 0
> > > > AND inf.nf_numero IN
> > > >   (SELECT n.nf_numero
> > > >     FROM nota n
> > > >     WHERE n.nf_dtproc BETWEEN '10/01/2004' AND  '11/30/2004')
> > > >
> > > > Mas tá dando um erro danado de resolver:
> > > > "fmSQLEditor.Query:
> > > > multiple rows in singleton select
> > > > .
> > > > multiple rows in singleton select."
> > > >
> > > > Alguém pode me ajudar?
> > > > Estou quebrando cabeça faz uns 3 dias e agora preciso mesmo resolver
> > esta
> > > > questão quase q imediatamente.
> > > > Agradeço muito antecipadamente.
> > > >
> > > > [  ]'s
> > > >
> > > > lher
> > > >
> > > > ----- Original Message -----
> > > > From: "Carlos H. Cantu" <listas em warmboot.com.br>
> > > > To: "FireBase" <lista em firebase.com.br>
> > > > Sent: Friday, December 10, 2004 1:45 PM
> > > > Subject: Re: [firebase-br] utilizar memória do servidor
> > > >
> > > >
> > > > > A memória do seu servidor não é usada apenas pelo Firebird. Mesmo
> > > > > usando o SS, com 40MB de cache, o sistema operacional irá
> > > > > utilizar parte da memória RAM para rodar seus processos e para
fazer
> > > > > cache tb.
> > > > >
> > > > > []s
> > > > > Cantu
> > > > > http://www.warmboot.com.br
> > > > > FireBase - http://www.FireBase.com.br
> > > > >
> > > > > MCD> Carlos H. Cantu wrote:
> > > > > >> Usar 1GB de RAM com apenas UM banco de dados sendo conectado
vai
> > ser
> > > > > >> impossível com a versão SS.
> > > > > >>
> > > > > >> []s
> > > > > >> Cantu
> > > > > >> http://www.warmboot.com.br
> > > > > >> FireBase - http://www.FireBase.com.br
> > > > >
> > > > > MCD> Eu tenho dois bancos. Um é o principal e outro é de CEPs que
> > > > > MCD> só é utilizado quando se cadastra uma nova pessoa.
> > > > >
> > > > > MCD> Portanto, o banco de CEP possui bem menos cache do que o
banco
> > > > > MCD> principal. O banco principal tem 8198 paginas de 4096 de
cache.
> > > > >
> > > > > MCD> Isso me dá somente 32MB de cache. Quer dizer que o resto da
> > memória
> > > > > MCD> do servidor não serva pra nada se eu utilizar o FB
SuperServer
> ?
> > > > >
> > > > > MCD> Ou seja, seria melhor continuar com o FB Classic ?
> > > > >
> > > > > MCD> Ou usar o FB SuperServer e aumentar a quantidade de páginas
de
> > > cache?
> > > > > MCD> Posso colocar umas 30000 paginas de cache? ou 65000 ?
> > > > >
> > > > > MCD> Maglan
> > > > >
> > > > >
> > > > > MCD> ______________________________________________
> > > > > MCD> FireBase-BR (www.firebase.com.br) - Hospedado em
> www.bavs.com.br
> > > > > MCD> Para editar sua configuração na lista, use o endereço
> > > > > MCD>
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > > >
> > > > >
> > > > > ______________________________________________
> > > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > > > > Para editar sua configuração na lista, use o endereço
> > > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > >
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > >
> > > >
> > >
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >
> >
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>





Mais detalhes sobre a lista de discussão lista