Siga-nos no Facebook Siga-nos no Instagram Siga-nos no LinkedIn Venha estudar Protheus
 
Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  ADVPL

Enviar para a impressoraImprimir   

Subject Erro na query
Mensagem do Enviar e-mail Abrir o Perfil do usu�rio ROMERO_ROMERO ROMERO_ROMERO em 15/10/2020 as 10:18 hs
Local: sp   Membro desde: 09/10/2020  Postagem: 3

Olá.
Estou com um erro na execução de uma query. Segue o fonte:

Static function areserv()

LOCAL     cNUMERO      := GetSxeNum("SC0","C0_NUM")
LOCAL     cQuerysc6     := ""   
LOCAL     cQuerysc0     := ""
LOCAL      lRet          := .F.
            
aAreax := GetArea()
cQuerysc0 := " SELECT COUNT(C0_NUM)AS COUNT "
cQuerysc0 += " FROM " + RetSQLName("SC0")+" SC0 "
cQuerysc0 += " WHERE SC0.C0_DOCRES = '" + SC6->C6_NUM + "' "
cQuerysc0 += " AND SC0.D_E_L_E_T_ = '' "
cQuerysc0 := ChangeQuery(cQuerysc0)
DbUseArea(.T., "TOPCONN", TCGenQry(,,cQuerysc0), 'TSC0', .F., .T.)
     
IF TSC0->COUNT = 0
lRet := .T.
ENDIF
TSC0->(dbCloseArea())
       
RestArea(aAreax)
   
cQuerysc6 := "SELECT C6_ITEM, C6_PRODUTO, C6_QTDVEN, C6_LOCAL, C6_NUM, C6_RESERVA, C6_XOBSERV,C6_LOCALIZ,C6_NUMSERI "
cQuerysc6 += "FROM " + RetSqlName( "SC6" ) + " SC6 "
cQuerysc6 += "WHERE SC6.C6_NUM = '" +SC6->C6_NUM + "' "
cQuerysc6 += "ORDER BY SC6.C6_ITEM"      
          
DbUseArea(.T., "TOPCONN", TCGenQry(,,cQuerysc6), 'TSC6', .F., .T.)     
                                                       
             
While !TSC6->(Eof())     
IF lRet
             
aOPERACAO := {1,"PD",TSC6->C6_NUM,AllTrim(cUserName),xFilial("SC6"),AllTrim(TSC6->C6_XOBSERV)}
cPRODUTO:= TSC6->C6_PRODUTO
cLOCAL := TSC6->C6_LOCAL
nQUANT := TSC6->C6_QTDVEN
aLOTE   := {"","",TSC6->C6_LOCALIZ,TSC6->C6_NUMSERI}
                                                              
                                      A430Reserv(aOPERACAO,cNUMERO,cPRODUTO,cLOCAL,nQUANT,aLOTE)
                                       
dbSelectArea("SC6")
dbSetorder(1)
dbSeek(xFilial("SC6")+TSC6->C6_NUM+TSC6->C6_ITEM+TSC6->C6_PRODUTO)
                                             Reclock("SC6",.F.)
SC6->C6_RESERVA := cNUMERO       
SC6->(MsUnlock())                                                       
SC6->(dbCloseArea())              
                                        
ENDIF
TSC6->(dbSkip())
Enddo
TSC6->(dbCloseArea())

   
Return


O erro ocorre na query cQuerysco pois nao traz o valor correto da quantidade de registro, ou seja o TSC0->COUNT traz sempre o valor de 0. Quando realizo essa query MSTUDIO do SQLServer traz o resultado corretamente de valor 2. Fiz um teste sem cQuerysc0 += " AND SC0.D_E_L_E_T_ = '' " e o TSC0->COUNT trouxe o resultado correto porem sei que preciso dessa clausula. Alguma idéia do que pode ser este erro?

Mensagem do Enviar e-mail Abrir o Perfil do usu�rio ROMERO_ROMERO ROMERO_ROMERO em 20/10/2020 as 11:48 hs
Local: sp   Membro desde: 09/10/2020  Postagem: 3
Analista de Sistema

Bom dia.

Agradeço a todos as dicas e sugestões. Com a ajuda de vocês melhorei meu código.


No final das contas o erro estava no ponto de entrada que eu estava utilizando. Este ponto de entrada estava executando após todos as atualizações do sistema, ou seja, o sistema por padrão realmente excluía os registros na SC0 e quando eu realizava a consulta de fato estava sempre zerado. quando executei em outro ponto de entrada. que executava antes das atualizações a consulta trouxe o valor correto.

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum