-
Posts
1,609 -
Joined
-
Last visited
-
Days Won
88
Posts posted by emotta
-
-
Em 16/11/2022 at 14:02, edutraini disse:
boa tarde Ale
engraçado mas se colocar 01/01/1000 da erro usando sqlrdd
Edu, no meu sistema eu considero em campos datas ano menor do que 1900 ou maior do que 2100 inválidos. Realmente no SQL SERVER se mandar gravar anos muitos antigos ou muito no futuro dá erro.
-
sim, exatamente, foi por isso que eu disse "tem que ser usada com cuidado", o cuidado é exatamente esse.
-
tem q ser usada com cuidado, imagina que tem um processo de recalculo que demora 30 minutos pra terminar, se não desativar isso ela vai derrubar o processo no meio.
-
Isso é um hash e dps transformado em JSON
esse codigo abaixo:
aResultado := hb_JSonEncode( { "codigo"=>cCodigo, "nome"=>cNome, "sexo"=>cSexo }, .T. )é o mesmo que fazer isso:
hDados := Hash()hDados[ "codigo"] := cCodigohDados[ "nome"] := cNomehDados[ "sexo"] := cSexoaResultado := hb_JSonEncode( hDados, .T. )em aResultado é uma string do tipo json
{"codigo": "00001","nome": "Marcio Augusto","sexo": "M"} -
faz tempo que não mexo com isso, mas eu verificava a resolução com base na window principal. Fazia desta forma: (não sei se vai te ajudar)
nHeight:= oObjWnd:nHeightnWidth := oObjWnd:nWidth -
consegui fazer, se algum tb precisar de algo doido como isso segue o código...
#DEFINE CRLF Chr(13) + Chr(10)Function TestProcess(nSecs)Local cFile := "services.txt"Local cCmd := 'tasklist /fi "imagename eq pontorpo.exe" /v /fo table > ' + cFileLocal nPidLocal cFile_Killed := "killeds.txt"If nSecs == nilnSecs := 30EndIfWhile Inkey(nSecs) # 27? Time() + " Verificando... "__Run(cCmd)HB_FUSE(cFile)While !HB_FEOF()cLinha := HB_FREADLN()If Upper("Unrecoverable error 9006") in Upper(cLinha)nPid := Val(SubStr(cLinha, 27, 8))? nPidKillPid(nPid)MemoWrit(cFile_Killed, Memoread(cFile_Killed) + Time() + " => " + cLinha + CRLF)EndIfHB_FSKIP()EndDoHB_FUSE()EndDoReturnStatic Function KillPid(nPid)Local cCmd := "taskkill /PID ? /F"cCmd := StrTran(cCmd, "?", AllTrim(Str(nPid,10)))? cCmd__Run(cCmd)Return -
Pessoal estou precisando fechar outro aplicativo através de um programa.
Eu tenho vários executáveis do sistema sendo executados em um servidor. Basicamente eles ficam checando uma tabela no SQL e quando caí algo nela, um desses serviços pega o registro pra processar. Este processo geralmente é um relatório do sistema.
Ocorre que eventualmente o aplicativo que está processando o relatório da de memória, o famoso:
Unrecoverable error 9006:
---------------------------
hb_xgrab can't allocate memory
Esse erro aparece dentro de uma telinha, tipo o msgstop do fivewin, e fica aguardando o OK para só então finalizar o executavel.
É aí que entra minha necessidade: Eu preciso que um outro executavel que está rodando neste mesmo servidor, identifique que essa janela foi aberta e então obtenha o PID do executável. Tendo o PID eu já consigo fechar o executavel.
Então meu problema não é o estouro de memória do HB_XGRAB e nem fechar o aplicativo através do PID, o que eu preciso é saber que aconteceu esse erro e aí tomar minhas providencias.
Eu utilizo xHarbour no modo console, mas se a solução for em fivewin ou até em outra linguagem já vai ajudar muito.
vlwwww
-
18 horas atrás, edutraini disse:
Boa tarde, Pessoal
Meu cloud na localweb esta caindo toda hora, nao sei oque esta acontecendo nos serviços da localweb mas esta caindo todo dia
ALguem tem alguma susgestao de outro cloud
Obrigado
Existem três serviços que são o mesmo nivel, são: AWS / AZURE / GOOGLE CLOUD
Qualquer outro está abaixo desses três.
Tenho o sistema hospedado no Azure (VM e SQL como serviço) já a mais de 2 anos, milhares de usuários e nunca caiu.
Então a minha dica é Azure, mas entendo que AWS e GOOGLE também seriam excelentes alternativas. Qualquer outra entendo que são inferiores a esses três. Isso é minha opinião.
-
ninguem?
-
Consegui fazer o código abaixo rodar, porem na linha 73:
oComunicacao:setOption( 3, "CURRENT_USER\MY\" + ::cCertificado )eu gostaria de saber o que colocar em cCertificado. É a chave publica ou privada do certificado digital a1? Eu coloco o caminho ou o conteudo da chave nele? alguem pode me ajudar?
segue abaixo o codigo fonte completo: (ao executar eu estou recebendo a resposta do esocial porem obviamente recusando, mas pelo menos está batendo la)
#include "hbclass.ch"#ifndef XML_UTF8#define XML_UTF8 '<?xml version="1.0" encoding="UTF-8"?>'#endifFUNCTION Main()LOCAL cChave := "1.2.201709.0000000000000226099"LOCAL oESocial := ESocialClass():New()oESocial:cCertificado := "xxxxxxxxxxxxxxxxxxxx"oESocial:ConsultaRetornoLote( cChave )? oEsocial:cXmlRetornoRETURN( NIL )CREATE CLASS ESocialClassVAR cCertificado INIT ""VAR cUrl INIT ""VAR cSoapAction INIT ""VAR cXmlDocumento INIT ""VAR cXmlEnvelope INIT ""VAR cXmlRetorno INIT ""METHOD ConsultaRetornoLote( cChave, cCertificado )METHOD MicrosoftXmlSoapPost()ENDCLASSMETHOD ConsultaRetornoLote( cChave, cCertificado ) CLASS ESocialClassIF cCertificado != NIL::cCertificado := cCertificadoENDIF::cUrl := "https://webservices.producaorestrita.esocial.gov.br/servicos/empregador/consultarloteeventos/WsConsultarLoteEventos.svc"::cSOAPAction := "http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0/ServicoConsultarLoteEventos/ConsultarLoteEventos"::cXmlDocumento := ;'<eSocial xmlns="http://www.esocial.gov.br/schema/lote/eventos/envio/consulta/retornoProcessamento/v1_0_0">' + ;'<consultaLoteEventos>' + ;'<protocoloEnvio>' + cChave + '</protocoloEnvio>' + ;'</consultaLoteEventos>' + ;'</eSocial>'::cXmlEnvelope := XML_UTF8 + ;'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ' + ;'xmlns:v1="http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0">' + ;'<soapenv:Header/>' + ;'<soapenv:Body>' + ;'<consultaLoteEventos>' + ;'<consulta>' + ;::cXmlDocumento + ;'</consulta>' + ;'</consultaLoteEventos>' + ;'</soapenv:Body>' + ;'</soapenv:Envelope>'hb_MemoWrit( "consulta.xml", ::cXmlEnvelope )::MicrosoftXmlSoapPost()RETURN ::cXmlRetornoMETHOD MicrosoftXmlSoapPost() CLASS ESocialClassLOCAL oComunicacaooComunicacao = CreateObject( "MSXML2.ServerXMLHTTP.6.0" )// oComunicacao:setOption( 3, "CURRENT_USER\MY\" + ::cCertificado )oComunicacao:open( "POST", ::cUrl, .F. )oComunicacao:SetRequestHeader( "SOAPAction", ::cSOAPAction )oComunicacao:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )oComunicacao:send( ::cXmlEnvelope )DO WHILE oComunicacao:readyState <> 4Inkey( 0.5 )ENDDO::cXmlRetorno := oComunicacao:responseTextRETURN NIL -
38 minutos atrás, kapiaba disse:
Vlw Kapiaba, mas inicialmente gostaria de fazer sem usar o ACBR, já que eu não preciso de todo o eSocial mas somente a parte do download de eventos do trabalhador.
-
Fantástico Infosys. Se não for pedir demais vc tem um exemplo, em qualquer linguagem (pode ser tb via CURL) para obter esses dados?
(no caso o que vou precisar é dos eventos de trabalhadores)
-
Como eu já vi algumas pessoas postando duvidas de eSocial aqui imagino que tenham pessoas que possam me ajudar.
Eu preciso fazer download, via aplicação, de eventos que estão no eSocial. Hoje é possivel fazer esse download pelo portal (https://www.gov.br/esocial/pt-br/noticias/esocial-download-para-facilitar-a-vida-do-empregador)
Eu gostaria de fazer esse download via aplicação, tanto o pedido como o download do arquivo.
Alguém aqui sabe como fazer? O exemplo pode ser em qualquer linguagem e eu já sei que com certeza vai precisar do certificado digital da empresa.
Fico agradecido se alguém puder me ajudar nisso
abraços
-
então é isso, mysql tem um comportamento diferente do sql server neste sentido.
Se vc executar essa query com os mesmos dados em sql server vai dar erro.
Em 07/07/2022 at 15:31, oliveiros disse:Oi emotta, boa tarde!
Eu tenho um servidor linux na LocaWeb com mysql 8.0.
Att.,
Oliveiros Junior
-
Oliveiros, em qual banco você está testando isso? Em SQL SERVER da erro um select como esse. Todas as colunas do select precisam estar no group senão da erro. No caso do seu exemplo se eu rodar em sql server eu tenho duas opções: ou retiro a observação do select ou coloca ela no group by junto as demais.
8 minutos atrás, oliveiros disse:Só uma observação, como o conteúdo da obervação é diferente, como na seq, ele mostra a primeira ocorrência. Se o seq estiver na lista de campos a ser apresentado, ele apresentaria a seq 001.
-
exatamente Edu, foi por isso que eu coloquei o select com o group by com todos as colunas do select
3 horas atrás, edutraini disse:Bom dia Junior
EU entendi oque vc me passou mas ai minha duvida é que se eu nao colocar o campo observacao no group by ele da essa mensagem no manager studio
Mensagem 8120, Nível 16, Estado 1, Linha 1
A coluna 'dpropro0.OBSERVACAO ' é inválida na lista de seleção porque não está contida em uma função de agregação nem na cláusula GROUP BY.
-
Oliveiros eu não testei mas acho que é necessário colocar as outras colunas no group.
Edu, se der erro a solução passada acima tente a seguinte:
SELECT lote, seq, tipo, secao, SUM(estoqatual) as total FROM teste WHERE tipo = "51200" GROUP BY lote, seq, tipo, secao
e se quiser ordenar trabalhe com order by
SELECT lote, seq, tipo, secao, SUM(estoqatual) as total FROM teste WHERE tipo = "51200" GROUP BY lote, seq, tipo, secao ORDER BY LOTE, SEQ, TIPO, SECAO
-
Ariston, muito legal, mas ler XML quando tem a possibilidade de ler JSON é furada, deixa o código mais complexo... Veja como fica mais simples ler o Json
Static function ConsultaCep()Local cCep := "13380003"Local cLink := "https://viacep.com.br/ws/" + cCep + "/json"Local hCep := Hash()cJson_Cep := Emt_GetHtml(cLink)cJson_Cep := SemAcento(cJson_Cep)hb_jsondecode(cJson_Cep,@hCep)Try? hCep['bairro']? hCep['logradouro']? hCep['localidade']? hCep['uf']Catch? 'erro ao buscar cep'EndReturnStatic Function Emt_GetHtml(cLink)Local oOleLocal cHtml := ""TryoOle := CreateObject( "Microsoft.XMLHTTP" )oOle:Open( "GET", cLink, .f. )oOle:Send()cHtml := oOle:ResponseBodyoOle := nilCatchEndReturn cHtml -
22 minutos atrás, marcioe disse:
Olá a Todos.
eu uso https://viacep.com.br/
https://viacep.com.br/ws/NUMERO_SEU_CEP_SEM_TRACOS/xml
Funciona bemsugestão, busque em formato json que é mais pratico para manipular
https://viacep.com.br/ws/NUMERO_SEU_CEP_SEM_TRACOS/json
-
Lembro dele de quando comecei a ver fivewin em 2000, na época que o forum era no formato de news via outlook, bons tempos. Usei por muitos anos TSBROWSE, até migrar para xBrowse.
Mais um da antiga que se vai. Uma perda para comunidade.
-
A solução para esse caso é vc criar a sua própria sequencia, veja no link abaixo como fazer isso.
https://stackoverflow.com/questions/26578313/how-do-i-create-a-sequence-in-mysql
-
1 hora atrás, macs disse:
Pessoal, tem como usar comandos SQL mais complexos? Testei e deu certo, mas nem um LEFT JOIN funcionou. Apenas "SELECT * FROM"
eu não tenho certeza mas acredito que não, a limitação é no DBF, mas se conseguir avisa o pessoal....
-
Em 16/05/2022 at 18:50, edutraini disse:
Boa noite pessoal
Um cliente meu de sucatas comprou uma balanca da marca weightec modelo wt1000
Alguem poderia dar uma dica ou vender uma rotina para comunicar com essa balanca
Att
Eduardo Mazur
a 20 anos atras integrei com uma balança e eles fornecerem DLL. Essa ai não forneceu nada? tem alguma sdk?
ps: achei o link é esse e com exemplos e documentação: https://www.weightech.com.br/wtreadweight
-
Vejam essa documentação da TOTVS sobre o assunto, talvez ajude.
Como saber o status de um Objeto
in Programação
Posted
If oBtn:lActive
MsgStop("Botao ativo")
Else
MsgStop("Botao desativado")
EndIf