Perguntas Integração entre tabelas

Mais
2 anos 2 meses atrás #33257 por advpl_os
Galera bom dia, sou novato em advpl e estou com um probleminha.

Tenho duas tabelas SZT e SZB e estou tentando integrar para SZB uma coluna em específico da SZT
(SZB->ZB_SALDO1 := SZT->ZT_SALDOM)

Ao executar a rotina e entrar no dbSeek pra alterar o registro existente na SZB aparece uma mensagem de tentativa de reservar registro no Alias SZB em EOF Stack de chamadas.

Alguém consegue me dar um help ?

User Function GPEINTZB()

Local cPerg := "GPEINTZB"

If Pergunte(cPerg,.T.)

Processa({||GravaSZB()},"Importando saldo para SZB. Aguarde...")

EndIf

Return

///////////////////////////////////////////////////////////////////////////////////

Static Function GravaSZB()

Local cCompete := ""
Local nValor := 0



_cQuery := " SELECT DISTINCT (ZT_MAT), ZT_COMP, ZT_SALDOM ,ZT_SALDOQ " +Chr(13)
_cQuery += " FROM "+RetSqlName('SZT')+" SZT " +Chr(13)
_cQuery += " WHERE SZT.ZT_COMP = '"+MV_PAR01+"'" +Chr(13)
_cQuery += " AND SZT.ZT_SALDOM > '0' AND SZT.D_E_L_E_T_ = '' ORDER BY SZT.ZT_MAT " +Chr(13)

TCQUERY _cQuery New Alias "SZT"

DbGoTop()

cCompete := MV_PAR01

Begin Transaction
ProcRegua(Len("SZT"))

IncProc("Integrando Registros...")

While SZT->(!EoF())

DBSELECTAREA("SZB")
DBSETORDER(3)
cFilSZB := xFilial("SZB")
nCount := 0

IF !DbSeek(xFilial("SZB")+SZB->ZB_MAT+cCompete)
RecLock("SZB",.F.)
SZB->ZB_SALDO1 := SZT->ZT_SALDOM
MsUnLock()
nCount++
EndIf
dbSkip()
EndDo
ApMsgInfo("Integração concluída com sucesso!", "Foram integrados : " + STRZERO(nCount, 6) + " registros.")

End Transaction
Return



Por favor Acessar ou Registrar para participar da conversa.

Mais
2 anos 2 meses atrás - 2 anos 2 meses atrás #33258 por admin
Respondido por admin no tópico Integração entre tabelas
Irmão bom dia, veja se funfa agora.
User Function GPEINTZB()

Local cPerg := "GPEINTZB"

If Pergunte(cPerg,.T.)

    Processa({||GravaSZB()},"Importando saldo para SZB. Aguarde...")

EndIf

Return

///////////////////////////////////////////////////////////////////////////////////

Static Function GravaSZB()

Local cCompete := ""
Local nValor := 0



_cQuery := " SELECT DISTINCT (ZT_MAT) MATRICULA, ZT_COMP, ZT_SALDOM ,ZT_SALDOQ " +Chr(13)
_cQuery += " FROM "+RetSqlName("SZT")+" SZT " +Chr(13)
_cQuery += " WHERE SZT.ZT_COMP = '"+MV_PAR01+"'" +Chr(13)
_cQuery += " AND SZT.ZT_SALDOM > '0' AND SZT.D_E_L_E_T_ = '' ORDER BY SZT.ZT_MAT " +Chr(13)

TCQUERY _cQuery New Alias "CHK1"

Count To nReg

CHK1->(dbGoTop())

cCompete := MV_PAR01

Begin Transaction
ProcRegua(nReg)

IncProc("Integrando Registros...")

nCount := 0
While CHK1->(!EoF())
    IF !SZB->(dbSetOrder(3),DbSeek(xFilial("SZB")+CHK1->MATRICULA+cCompete))
        RecLock("SZB",.F.)
        SZB->ZB_SALDO1 := CHK1->ZT_SALDOM
        SZB->(MsUnLock())

        nCount++
    EndIf
    CHK1->(dbSkip())
EndDo

CHK1->(dbCloseArea())

End Transaction

ApMsgInfo("Integração concluída com sucesso!", "Foram integrados : " + STRZERO(nCount, 6) + " registros.")

Return
Ultima edição: 2 anos 2 meses atrás por admin.

Por favor Acessar ou Registrar para participar da conversa.

Mais
2 anos 2 meses atrás #33259 por advpl_os
Respondido por advpl_os no tópico Integração entre tabelas
Man, bom dia.

Obrigado pelo retorno,

com aquele ajuste no Seek deu certinho.

While CHK1->(!EoF())
IF SZB->(dbSetOrder(3),DbSeek(xFilial("SZB")+CHK1->MATRICULA+cCompete))
RecLock("SZB",.F.)
SZB->ZB_SALDO2 := CHK1->ZT_SALDOQ
SZB->(MsUnLock())
nCount++
EndIf
CHK1->(dbSkip())
EndDo

CHK1->(dbCloseArea())

ApMsgInfo("Integração concluída com sucesso!", "Foram integrados : " + STRZERO(nCount, 6) + " registros.")

End Transaction


Integração rolando... vlwwwwwwwwww

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.091 segundos
Joomla templates by a4joomla