- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda rotina de atualização
×
Linguagem de Programação ADVPL
Perguntas Ajuda rotina de atualização
- Flávia Mártis
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
10 anos 2 semanas atrás #25991
por Flávia Mártis
Ajuda rotina de atualização foi criado por Flávia Mártis
Bom dia pessoal,
Estou tentando desenvolver uma rotina que reabre o atendimento do Call Center, conforme parâmetro passado.
Abaixo segue o realizado até o momento:
#INCLUDE ‘PROTHEUS.CH‘
#INCLUDE ‘TOPCONN.CH‘
#include "TOTVS.CH"
#DEFINE CRLF chr(13) + chr(10)
User Function BIOTMK13 ()
Local cAteQry := ""
Private cPerg := ‘BIOTMK13‘
If !Pergunte(cPerg,.T.)
Return
End If
Pergunte(cPerg,.F.)
//Atalizando a Reabertura do Atendimento
cAteQry += CRLF + " UPDATE SUC010 SET UC_STATUS = ‘2‘, UC_DTENCER = ‘‘, UC_CODENCE = ‘‘, UC_CODMOT = ‘‘ "
cAteQry += CRLF + " WHERE "
cAteQry += CRLF + " UC_CODIGO BETWEEN ‘" + MV_PAR01 + "‘ AND ‘" + MV_PAR02 + "‘"
//Verificando se a query está aberta na memória
If Select(‘QRYATE‘) <> 0
QRYATE->(DbCloseArea())
End If
TCQUERY cAteQry NEW ALIAS ‘QRYATE‘
//Validando se tem algum atendimento
if QRYATE->(EOF())
MsgAlert (‘O Atendimento não foi localizado. Favor revisar o filtro!‘)
Return
End If
Return Nil
Como podem ver é bem simples, pois oa selecionar atualiza alguns campos essenciais!
Porém, quando executo tenho a seguinte mensagem: TOP Error -19 - Invalid Select / Query Statement.
O que pode ser? Qual a solução para o caso?
Obrigada dese já!
Flávia Mártis
Estou tentando desenvolver uma rotina que reabre o atendimento do Call Center, conforme parâmetro passado.
Abaixo segue o realizado até o momento:
#INCLUDE ‘PROTHEUS.CH‘
#INCLUDE ‘TOPCONN.CH‘
#include "TOTVS.CH"
#DEFINE CRLF chr(13) + chr(10)
User Function BIOTMK13 ()
Local cAteQry := ""
Private cPerg := ‘BIOTMK13‘
If !Pergunte(cPerg,.T.)
Return
End If
Pergunte(cPerg,.F.)
//Atalizando a Reabertura do Atendimento
cAteQry += CRLF + " UPDATE SUC010 SET UC_STATUS = ‘2‘, UC_DTENCER = ‘‘, UC_CODENCE = ‘‘, UC_CODMOT = ‘‘ "
cAteQry += CRLF + " WHERE "
cAteQry += CRLF + " UC_CODIGO BETWEEN ‘" + MV_PAR01 + "‘ AND ‘" + MV_PAR02 + "‘"
//Verificando se a query está aberta na memória
If Select(‘QRYATE‘) <> 0
QRYATE->(DbCloseArea())
End If
TCQUERY cAteQry NEW ALIAS ‘QRYATE‘
//Validando se tem algum atendimento
if QRYATE->(EOF())
MsgAlert (‘O Atendimento não foi localizado. Favor revisar o filtro!‘)
Return
End If
Return Nil
Como podem ver é bem simples, pois oa selecionar atualiza alguns campos essenciais!
Porém, quando executo tenho a seguinte mensagem: TOP Error -19 - Invalid Select / Query Statement.
O que pode ser? Qual a solução para o caso?
Obrigada dese já!
Flávia Mártis
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 2 semanas atrás #25996
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ajuda rotina de atualização
Flavia boa noite qual é o banco de dados que está usando ? SQL Server ?
Meu Conselho é usar o comando tcquery apenas para select´s, nunca para updates e deletes.
Experimenta substituir isso por
If SUC->(dbSetOrder(x),dbSeek(xFilial("SUC")+cChave))
If RecLock("SUC",.f.)
xxxx
Endif
Endif
Outra coisa o nome da tabela se tiver uma empresa 02 vai dar erro, o correto é usar
FROM " + RetSqlName("SUC")
Meu Conselho é usar o comando tcquery apenas para select´s, nunca para updates e deletes.
Experimenta substituir isso por
If SUC->(dbSetOrder(x),dbSeek(xFilial("SUC")+cChave))
If RecLock("SUC",.f.)
xxxx
Endif
Endif
Outra coisa o nome da tabela se tiver uma empresa 02 vai dar erro, o correto é usar
FROM " + RetSqlName("SUC")
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Flávia Mártis
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 23
- Obrigados Recebidos: 0
10 anos 5 dias atrás #26179
por Flávia Mártis
Respondido por Flávia Mártis no tópico Ajuda rotina de atualização
Consegui resolvendo assim:
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'TOPCONN.CH'
#include "TOTVS.CH"
#DEFINE CRLF chr(13) + chr(10)
User Function BIOTMK13 ()
Local cAteQry := ""
Private cPerg := 'BIOTMK13'
If !Pergunte(cPerg,.T.)
Return
End If
Pergunte(cPerg,.F.)
//Atualizando a Reabertura do Atendimento
cAteQry += CRLF + " UPDATE SUC010 SET UC_STATUS = '2', UC_DTENCER = ' ', UC_CODENCE = ' ', UC_CODMOT = ' ' "
cAteQry += CRLF + " WHERE "
cAteQry += CRLF + " UC_CODIGO = '" + MV_PAR01 + "' "
nReturn := TcSqlExec(cAteQry )
If nReturn < 0
MsgStop("Não foi possível reabrir o atendimento solicitado!")
Else
MsgInfo("Atendimento reaberto com sucesso!")
End If
Return Nil
Obrigada pessoal!
Flávia Mártis
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'TOPCONN.CH'
#include "TOTVS.CH"
#DEFINE CRLF chr(13) + chr(10)
User Function BIOTMK13 ()
Local cAteQry := ""
Private cPerg := 'BIOTMK13'
If !Pergunte(cPerg,.T.)
Return
End If
Pergunte(cPerg,.F.)
//Atualizando a Reabertura do Atendimento
cAteQry += CRLF + " UPDATE SUC010 SET UC_STATUS = '2', UC_DTENCER = ' ', UC_CODENCE = ' ', UC_CODMOT = ' ' "
cAteQry += CRLF + " WHERE "
cAteQry += CRLF + " UC_CODIGO = '" + MV_PAR01 + "' "
nReturn := TcSqlExec(cAteQry )
If nReturn < 0
MsgStop("Não foi possível reabrir o atendimento solicitado!")
Else
MsgInfo("Atendimento reaberto com sucesso!")
End If
Return Nil
Obrigada pessoal!
Flávia Mártis
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda rotina de atualização
Tempo para a criação da página:0.075 segundos