× Linguagem de Programação ADVPL

Perguntas Ajuda rotina de atualização

Mais
10 anos 2 semanas atrás #25991 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 semanas atrás #25996 por lalberto
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")

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.

Mais
10 anos 5 dias atrás #26179 por Flávia Mártis
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

Por favor Acessar ou Registrar para participar da conversa.

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