× Linguagem de Programação ADVPL

Perguntas Update em advpl

Mais
11 anos 2 semanas atrás #18272 por sarraipa
Update em advpl foi criado por sarraipa
Oi sou novo no assunto,
Quero atualizar um registro atraves de um ponto de entrada,
Como faço update em advpl,

Esta é a parte do codigo que da pau:

cUpdate := "update SE3010 set D_E_L_E_T_='*' where SE3010.R_E_C_N_O_='"+cRecn+"'"

//excuta a query de update
TcSqlExec(cUpdate)

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18273 por RonaldoLopes
Respondido por RonaldoLopes no tópico Update em advpl
Boa tarde, porque não usa reclock?
Como só vai atualizar um registro é bem mais simples com reclock.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18278 por sarraipa
Respondido por sarraipa no tópico Update em advpl
Legal a ideia mas o indice é muito grande, eu acho que via update seria mais rapido e o codigo menor.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18279 por kanaamlrr
Respondido por kanaamlrr no tópico Update em advpl
Ok, mas qual o erro que é apresentado quando executa?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18280 por RonaldoLopes
Respondido por RonaldoLopes no tópico Update em advpl
Posta o erro ai pra gente, fica mais fácil te ajudar assim.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 semanas atrás #18291 por sarraipa
Respondido por sarraipa no tópico Update em advpl
Seguindo a linha de usar o RECLOCK o ponto de entrada ficou assim, mas como o campo que quero setar é o delete acho que só rola se por via update,

Lembre sou iniciante em programação rsrs...
User Function SACI008()

Local cQuery
//Local cUpdate
Local cRecn
Local cPrefixo
Local cNum
Local cParcela
Local cSeq
Local cVend

cQuery := "select E3_PREFIXO,E3_NUM,E3_PARCELA,E3_SEQ,E3_VEND from SE3010 "
cQuery += "inner join SE1010 on E1_NUM = E3_NUM AND E1_LOJA =E3_LOJA "
cQuery += "inner join SE5010 on E3_NUM =E5_NUMERO and E3_LOJA =E5_LOJA and E3_SEQ=E5_SEQ "
cQuery += "where E3_NUM ='"+SE1->E1_NUM+"'and SE3010.D_E_L_E_T_=''and SE1010.D_E_L_E_T_=''and SE5010.D_E_L_E_T_='' "

cQuery := ChangeQuery(cQuery)

TCQUERY cQuery NEW ALIAS "TRB"
dbSelectArea("TRB")

//cRecn := TRB->R_E_C_N_O_

cPrefixo := TRB->E3_PREFIXO
cNum := TRB->E3_NUM
cParcela := TRB->E3_PARCELA
cSeq := TRB->E3_SEQ
cVend := TRB->E3_VEND

dbCloseArea("TRB")


dbSelectArea("SE3")

dbSetOrder(1)

dbSeek(xFilial("SE3") + cPrefixo + cNum + cParcela + cSeq + cVend ) // Busca exata

IF FOUND() // Avalia o retorno da pesquisa realizada

RECLOCK("SE3", .F.)

SE3->D_E_L_E_T_ :="*"

MSUNLOCK() // Destrava o registro

ENDIF
//cUpdate := "update SE3010 set D_E_L_E_T_='*' where SE3010.R_E_C_N_O_='"+cRecn+"'"

//TcSqlExec(cUpdate)

RETURN nil

Por favor Acessar ou Registrar para participar da conversa.

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