lucimauromelo
-
Posts
44 -
Joined
-
Last visited
-
Days Won
1
Reputation Activity
-
lucimauromelo reacted to emotta in Atualizar Versao do Sistema
segue a funcao CompFile que retorna se os arquivos são iguais ou diferentes
Function Teste() Local cFile1 := "arq1.txt" Local cFile2 := "arq2.txt" Local cFile3 := "arq3.txt" Local cCont1 := "testando texto para arquivo 1" Local cCont2 := "testando texto para arquivo 1" Local cCont3 := "testando texto para arquivo 3" MemoWrit(cFile1, cCont1) MemoWrit(cFile2, cCont2) MemoWrit(cFile3, cCont3) If CompFile(cFile1, cFile2) ? cFile1 + " é igual a " + cFile2 Else ? cFile1 + " é diferente de " + cFile2 EndIf If CompFile(cFile1, cFile3) ? cFile1 + " é igual a " + cFile3 Else ? cFile1 + " é diferente de " + cFile3 EndIf ? "fim" return Static Function CompFile(cFile1, cFile2) Local cHash1 := HB_MD5File( cFile1 ) Local cHash2 := HB_MD5File( cFile2 ) Return cHash1 == cHash2 -
lucimauromelo reacted to vailtom in DICA: Exemplo de como fazer HTTP PUT usando cURL
Olá,
Recentemente integramos a API de loja virtual da Tray com nosso software e alguns aspectos foram bem nebulosos, por isto quero dividir com vocês uma dica super útil para casos como este, onde é necessário realizar um HTTP PUT usando lib cUrl.
Segue o exemplo de código que demonstra o trecho mais importante:
FUNCTION Tray_UpdateEstoque( sku_id, nEstoque, access_token ) LOCAL cEndPoint := 'https://666.commercesuite.com.br/web_api/products/'+alltrim(str(sku_id))+'?access_token='+access_token LOCAL cData := '{"Product": {"stock": '+ALLTRIM(STR(nEstoque))+'}}' LOCAL curl LOCAL nRet LOCAL Buff LOCAL Resp IF !empty( curl := curl_easy_init() ) curl_easy_setopt( curl, HB_CURLOPT_HTTPHEADER, {"Content-Type:application/json"} ) curl_easy_setopt( curl, HB_CURLOPT_CUSTOMREQUEST, 'PUT') curl_easy_setopt( curl, HB_CURLOPT_URL, cEndPoint ) curl_easy_setopt( curl, HB_CURLOPT_POSTFIELDS, cData ) curl_easy_setopt( curl, HB_CURLOPT_FOLLOWLOCATION, 1) curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, 0 ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, 0 ) nRet := curl_easy_perform( curl ) Buff := curl_easy_dl_buff_get( curl ) curl_easy_cleanup( curl ) IF (nRet == HB_CURLE_OK) hb_jsonDecode( Buff, @Resp ) ENDIF ELSE RETURN .F. ENDIF IF !HB_ISHASH(Resp) ? Buff // Exibe na tela a mensagem de erro obtida RETURN .F. ENDIF * Retorno em caso de sucesso (status code 200 ou 201) nRet := Resp['code'] RETURN (nRet == 200 .OR. nRet == 201) Em nosso caso utilizamos o compilador Harbour, mas, isto deve servir como base para você caso use outros compiladores.
Espero ter ajudado.
-
lucimauromelo got a reaction from rochinha in Alguém usa o activex XHbCom.HbConnection?
Mediator eu uso, voce trabalha com os comando normais para dbf mais acessando o banco MYSQL , podendo também usar comando diretos no mysql.
Existe a versão free para mysql que suporta ate 100 conexões e para outros bancos acho que 5 conexões ou comprar a versão paga.
-
lucimauromelo got a reaction from aferra in provedor bol
Bom dia,
Realmente quem não tiver assinatura do provedor bol não conseguira mais envia email por APP, somente pelo próprio site, essa e a nova regra deles.
-
lucimauromelo got a reaction from Ronaldbuch in Curso Ferramenta Windev
@Jorge Andrade
Jorge você poderia me mandar por e-mail e grátis o curso?