[firebase-br] Loop que não ocorre :(
Levy Moreira
levymoreira.ce em gmail.com
Ter Set 21 16:27:44 -03 2010
Alguem sabe porque essa linha :
for execute statement 'SELECT PESCON,codcon FROM "CON" WHERE (NOT NOTCON
IS NULL) AND (NOT PESCON IN(SELECT CODCLI FROM CLI)) and (pescon = 1001)'
não faz um loop ?
Codigo completo:
execute ibeblock
returns( PESCONNOVO integer, CODCONT integer, clinew integer, DOCU
varchar(45))
as
begin
-- Cria as conexoes --
create connection dbNew dbname 'C:\Dados\CS\Dados01\DADOS.FDB' --Banco
atual
password 'masterkey' user 'SYSDBA'
sql_dialect 3
clientlib 'fbclient.dll';
create connection dbAnt dbname 'C:\Dados\CS\Dados02\DADOS.FDB' --Banco
antigo
password 'masterkey' user 'SYSDBA'
sql_dialect 3
clientlib 'fbclient.dll';
use dbNew; --ABRE A CONEXÃO NO BANCO NOVO
-- FAZ UM LOOP NO CON COM AS CONTAS QUE SÃO DE UMA VENDA (NOT NOTCON IS
NULL) E QUE
-- NÃO ESTÃO COM O CLIENTE NA TABELA CLI (NOT PESCON IN(SELECT CODCLI FROM
CLI))
-- ESSE LOOP NÃO ESTA OCORRENDO POR QUE?
for execute statement 'SELECT PESCON,codcon FROM "CON" WHERE (NOT NOTCON
IS NULL) AND (NOT PESCON IN(SELECT CODCLI FROM CLI)) and (pescon = 1001)'
into :PESCONNOVO, :CODCONT
do
begin
use dbAnt; --ABRE A CONEXÃO NO BANCO ANTIGO
select CLI.docu01 from cli where CODCLI = :PESCONNOVO -- PEGA O NUMERO
DO DOCUMENTO NO BD ANTIGO REFENTE AO
into :DOCU; -- CLIENTE
ANTERIORMENTE SETADO NA VAR :PESCONNOVOB
if (NOT :DOCU IS NULL) then
BEGIN
use dbNew; --ABRE A CONEXÃO NO BANCO NOVO
select CODCLI from CLI where DOCU01 = :DOCU --Pega o codigo do
cliente no banco atual
INTO :CLINEW; --20007021
if (CLINEW <> PESCONNOVO) then --SE OS CODIGOS FOREM DIFERENTES...
BEGIN
update CON set CON.pescon = :CLINEW where CON.codcon = :CODCONT ;
--Seta o cliente na Fat
commit;
END
END
suspend;
end
close connection dbNew;
close connection dbAnt;
end
--
Levy Moreira - Sistech Informática
Juzeiro do Norte - Ce
Mais detalhes sobre a lista de discussão lista