Fábio Senji

Members
  • Content count

    111
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by Fábio Senji

  1. Resolvido com grande ajuda do @nathanreys. A jogada é usar ANSI em geral e receber como ANSI, não buffer. Se fizer com UNICODE, fica muito grande, e se jogar em buffer, não fica legível. Tem que usar o Decode de acordo com o outro lado também, acho que é obrigatório usar nos dois lados, inclusive. Segue exemplo de como ficou mais ou menos.
  2. Olá novamente. Agora com Windev Mobile 25 e Webdev 25, quero encriptar uma string e passar com senha de encriptação entre um webservice REST e um apk. Quero que o webservice empacote dados com EncryptStandard, envie e o apk receba, abra com DecryptStandard e use. Alguém já fez isso e conhece uma forma? Os tipos de strings associados aparentemente geram hashes diferentes e daí chaves diferentes. Não consigo de forma nenhuma realizar a desencriptação no lado apk. Consigo rodar o exemplo do EncryptStandard no mesmo apk, digo, emcriptar e desencriptar localmente, mas quando tento empacotar no webservice e abrir no apk (processo multiplataforma), inicialmente falhava no fim do processo de desencriptar, segundo o windev mobile, até eu tentar de outra maneira: " DecryptStandard function, syntax 1 What happened? The message decryption failed. The finalization step of encryption/decryption algorithm failed. " Foi assim até eu adaptar/inverter algo do fórum francês da pcsoft, que indica sucesso só que em processo inverso, ou seja, encriptando no apk e desencriptando num site. Daí terminei com o erro "The size of the encrypted message is not sufficient to contain the initial vector" ...no lado apk. Esse "vector" creio que seja um vetor de randomização da função, segundo help das funções.
  3. Não haveria algum jeito de criar uma thread se sistema pra chamar um .bat após um delay? Só cogitando aqui, não sei
  4. Saudações. Agora no Windev Mobile 25, quero usar o debug rápido direto no dispositivo para o qual estou programando meu apk, ou seja, testar o apk nele direto sem demora (opção nova). Pelo botão "debug on mobile device", o apk executa o gradle rapidinho e, ao que manda pro dispositivo, o dispositivo fica parado na mensagem abaixo: " Waiging For Debugger Application Package installer (process com.android.packageinstaller) is waiting for the debugger to attach. FORCE CLOSE (Opção da mensagem) " Consigo mexer no plano de fundo do dispositivo com a mensagem na tela, digo, o dispositivo responde mas o fundo fica escuro com essa mensagem na frente. Já tentei, sem sucesso: --Esperar a mensagem sumir um tempo; --Clicar em FORCE CLOSE; --Desativar e reativar a opção USB debugging no dispositivo; --Atualizar o Windev Mobile 25 para a versão 01A250090f; --Selecionar algum apk, bem como deixar "No debug application set" na opção "Select debug app" do menu developer options do dispositivo; --Mudar a opção "Wait for debugger" do dispositivo, o que é possível somente quando há um app de debug selecionado; --Mudar a opção "Enable view attribute inspection" no dispositivo. Alguma sugestão? Vi dizer sobre mexer no manifest, mas não tenho conhecimentos sobre isso, fora que não achei a linha referida para editar.
  5. Me pergunto se haveria um jeito de vc descobrir qual o executável que sobra aberto no gerenciador de tarefas e criar um batch (.bat) pra fechar e abrir de novo seu "MeuPrograma.Exe". Talvez precise rodar como admin pra isso, não sei. Daria certo pra vc? Já tentou? Tem que ver se um .bat chamado de uma mãe aplicação tem poder de terminá-la.
  6. Pedi ajuda ao @nathanreys pra estudar seu problema. Vejamos o que seu erro diz no seu contexto (query multiplataforma windev+postgres). O erro deve informar o que ocorre, procuremos entendê-lo. Há casos em que um erro aponta ao lugar errado, mas ao que vi isso geralmente acontece quando esquecemos de fechar um } ou um loop (ex: FOR / END). Assim: Sabe diferenciar o que vc entende do que não entende da mensagem de erro? Isso é importante. Localizamos na sua query a linha movimento_apartamentos.data_lancto AS data_lancto, referida no erro em: (...) LINE 1: ...ovtoAptos" WHERE ("QRY_MovtoAptos"."data_lancto" > to_date(... Parece haver um problema lá. O que é dito é (use e abuse do google tradutor): ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. Lembrando que type cast é conversão de tipo de variável. Não reconheci to_date mas parece ser uma função.Veja aqui no postgresqltutorial.com que achei no google. Ela converte uma string em data, como seu erro indica em: operator does not exist: text > date Resumindo, parece ser um erro de comunicação entre o windev e o postgres, pois o erro é numa função postgres (to_date), que deve ser chamada pelo windev ao rodar uma query para postgres escrita no windev. Na "tradução" da query windev para postgres, ou seja, no drive postgres do windev, talvez haja algo errado. Tudo indica um erro de passagem de parâmetro. Mas onde está? Procure entender o que acontece com os dados passados para a query na ida (por isso peço que nos mostre sua chamada da query) e na volta (onde vc joga os dados dessa query? Há conversão de tipos de variável? Como converte?). Como pode ser erro tanto seu quanto do drive windev para postgres, eu experimentaria as soluções mais simples antes, como tirar esse AS data_lancto de movimento_apartamentos.data_lancto AS data_lancto, mas isso do AS pode não ter nada a ver, não sei se ele faz algum type cast. Vc também pode seguir a sugestão que o NathanReys me deu aqui: Rodar a query direto no postgres e ver se funciona. É um erro multiplataforma, precisa saber onde ele ocorre. Não entendi funcionar sem o order na query. Me pergunto se o windev converte data para string somente quando vai ordenar, e usa uma função própria para ordenar strings, e assim ordenar os dados depois com base nessas strings convertidas.
  7. O erro descreve um problema com um identificador de alguma coisa, algo não reconhecido na query, parece ("No operator matches the given name and argument type(s)"). Tem como mostrar a query que vc quer que a gente ajude a corrigir? Rs Tentou usar o comando de executar a query com aquele parâmetro hQueryWithoutCorrection?
  8. [Android, Windev Mobile 23, dados externos ao apk] Olá. Algumas questões. 1-Entre consulta a webservice e conexão HFSQL client/server, para um apk ágil, alguma dica? Os helps deixaram dúvidas. Poderia alguém fazer alguma comparação dessas estratégias ou indicar alguma leitura? Terei poucos dados porém algumas imagens pequenas pra baixar do servidor pelo apk. Velocidade de acesso seria bom, mas não é prioridade máxima. 2-No apk com HFSQL client/server, uso HCloseConnection(minhaConexao), mas continuo com acesso aos dados client/server. O que ocorre? Isso tem a ver com já ter ocorrido HChangeConnection(minhaConexaoEmQuestao) no meu apk anteriormente? O HCloseConnection seria só para uma segunda conexão (ao haver conexões simultâneas)? Algo reabre a conexão automaticamente no Windev Mobile quando eu fecho?
  9. Não sei, Cassiano, não pensei nisso, vou dar uma olhada, valeu a dica. Se descobrir algo dou um retorno
  10. Pois é, Vilani, vc explicou mais ou menos como pensei, só que melhor kkk Obrigado pelas dicas interessantes, pessoal!
  11. Saudações. Para alguns testes de conectividade, quero criar uma janela de debug com a função ping, todavia ela não funciona em mobile 23. Alguém conhece alguma alternativa simples?
  12. Utilíssimos comentários, obrigado, pessoal. Realmente vi que comprimir imagens pequenas (mesmo em winrar) aumenta o tamanho delas, como ocorre no Compress no Windev com compressGZIP.
  13. Olá novamente. Estou trabalhando num app no W. Mobile 23 que baixará, de um webservice REST, tabelas HFSQL com imagens e outros atributos. O app salvará os dados em tabelas HFSQL classic (locais) semelhantes às do webservice e posteriormente mostrará num looper. A questão é que terei muitos registros e quase todos terão imagens, e isso torna o download lento. Atualmente o pessoal aqui está usando recursos como encode e compress para reduzir o tamanho dos dados retornados pelo webservice. Sabem se há alguma forma mais convencional / eficiente de reduzir o tráfego de dados obtendo um resultado semelhante (com imagens)?
  14. Não tem mais nenhum detalhe informado na mensagem de erro?
  15. Pelo que entendi, é mais ou menos assim (alguém corrija se eu estiver errado, por favor). Se vc tem uma noção de programação orientada a objetos, vai entender mais fácil. Se vc usa a função HFreeQuery sobre um objeto, ela espera receber o objeto tipo X e fazer seu papel. Entretanto, o objeto tipo X tem métodos da sua classe, como por exemplo o .FreeQuery. Dá no mesmo. Num caso vc está usando uma função para X, no outro o método da classe, mas imagino que quanto a código sendo rodado, tenha pouca ou nenhuma diferença.
  16. A constante não funciona para Android (7/outubro/2020).
  17. Saudações. Windev Mobile 23 com Webdev 23 aqui. Estou tentando pegar imagens comprimidas (para reduzir o tamanho do download) por uma chamada a um webservice que fiz e recebê-las num apk no mobile. Estou testando o Compress(minhaImagem, compressShortString), pois gera uma string bem pequena. Todavia, não consigo dar Uncompress nisso depois, no lado apk. Sabem dizer se esse parâmetro compressShortString funciona? Alguém já usou? Tenho que fazer algo em especial nesse caso? Detalhes: Tenho uma tabela TX, com um campo TX.Imagem. Consigo passar a tabela certinho, só não funciona o Uncompress na imagem para exibí-la depois. No lado servidor, estou usando Compress(TX.Imagem,compressShortString) somente nesse campo imagem, não na tabela toda. Depois de preencher o variant com dados da tabela, jogo o variant num array e retorno tudo para o lado apk. Do lado apk eu pego o retorno dentro da hRequisicaoREST..Content e recupero tudo legal, só a imagem que fica sempre com a mesma string comprimida e ilegível, mesmo mudando a imagem, e Uncompress nela retorna "Compress method not found". Ideias?
  18. Tenta dar um recompile / resyncronize e depois repair no projeto (aba Project, seta abaixo do botão das engrenagens azuis).
  19. Cassiano, creio que não. Fiz a mesma coisa no windev23 (desktop) agora e deu no mesmo, não consegue descomprimir o campo comprimido com compressShortString.
  20. Vc diz respeito à lupa que aparece em algumas colunas? É uma ferramenta de busca, experimente clicar nela em tempo de execução pra ver. Vc pode desativá-la nas opções da coluna acessando sua description (primeiro selecione a tabela, depois a coluna, depois dê 2 cliques na coluna ou aperte alt+enter, para acessar a descrição da coluna, não da tabela como um todo). Daí verá a opção "With search (magnifier)" - Com busca (lupa). Não sei se todos os tipos de dados permitem isso quando exibidos numa tabela.
  21. O que exatamente vc quer fazer? Montar uma procedure que crie um controle de linhas repetitíveis a partir do zero, preencha com dados personalizados e conte quantas linhas ele tem? Teria como explicar melhor o que vc quer que a procedure faça?
  22. Resolveu meu problema, me falaram desse multitask mas esqueci completamente... Obrigado, Cassiano! Estou também olhando o ThreadPause aqui, mencionado no help do Multitask, acho que também será útil. " It is recommended to use ThreadPause instead of Multitask or Timeout when several threads are used (including the main application thread) if the timeout does not need to process user actions. " (https://doc.windev.com/?3077029&name=threadpause_function)
  23. Saudações. Uma curiosidade, caso alguém conheça e saiba indicar. Nada urgente. A função Wait funciona em Windev 23, pausando temporariamente a execução da rotina que a contenha. Eu queria usá-la no Windev Mobile 23, todavia ao digitá-la nessa IDE já sou avisado que não funciona no Mobile. Conhecem alguma alternativa? Até então estou controlando tempo por threads e variáveis. Vi falar de um comando interessante (para Webdev) que é o jQuery, que acessa métodos javascript em elementos de página. Sabem informar se há alguma ferramenta semelhante a essa do Webdev para Windev Mobile / Android, ou seja, algum jeito de acessar um método Java nativo do Android que pause minha execução temporariamente, ou onde eu poderia achar alguma referência a isso, se precisaria de alguma permissão para o aplicativo, importação de biblioteca Java, etc...?
  24. Se recordo o @nathanreys me contou que no W. Mobile existe uma diferença nas strings. Recordo de usar BufferToHexa na saída do meu HashString, como indicado pela HashString ao colocar-lhe o cursor no W. Mobile. Veja aqui no help sobre strings observações pertinentes. Isso deve ajudar
  25. Estou por fora do que vc falou, acho que ouvi algo assim há muito tempo mas não recordo o contexto, então isso é um chute, mas será por causa de os Windevs tratarem Null de um jeito especial? O que vc leu refere a Windev ou a outra coisa? Segundo me mostraram aqui no trabalho, no Windev a palavra "Null" pode representar coisas diferentes conforme qual variável recebeu valor Null. Se o que vc joga no PostgreSQL vier de uma variável Windev que pode ser Null, creio que esse Null talvez possa ser um valor inesperado, conforme a variável que está como Null. Na verdade não sei como o PostgreSQL receberá isso. Veja o help de Null (reserved word). Mas não sei se é bem disso que vcs estão falando. " Remarks: For a variant type, NULL means "Not assigned" (Para variants, Null significa "Não designado") For a numeric type, NULL means "equal to 0" (see below) (Para tipos numéricos, Null significa "igual a 0") " (Retirado do link anexo)