Perguntas Integração entre tabelas
- advpl_os
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
2 anos 8 meses atrás #33257
por advpl_os
Integração entre tabelas foi criado 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
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.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
2 anos 8 meses atrás - 2 anos 8 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 8 meses atrás por admin.
Por favor Acessar ou Registrar para participar da conversa.
- advpl_os
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
2 anos 8 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
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.102 segundos