Ir para conteúdo
  • Cadastre-se

RibaSoft

Membros
  • Total de ítens

    146
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que RibaSoft postou

  1. Sim, pelo que entendi parece ser algo do tipo mesmo. Vou dar um exemplo aqui. Se eu pego dados de um campo no PC1 eu consigo pegar os mesmos dados no PC2, nesse momento é como se eu tivesse conectado com os dois PCs ao mesmo campo, mas no momento em que eu fizer uma alteração através de um desses dois pcs o outro não consegue fazer mais nada (deadlock) a não ser queu feche a conexão e conecte novamente nesse campo, oq faz todo sentido. Dai pensei em colocar um fechamento de conexão em um evento antes de um open, ou execute, mas dai vai zoar td em casos que tenho que fazer mais de uma alteração em tabelas diferentes antes de dar um commit. Acredito que meu problema seja falta de conhecimento em processos em banco de dados mesmo, dai consegui resolver dessa vez, fechando a conexão manualmente em cada caso. Talvez não seja uma gambiarra como eu disse e sim o jeito certo a se fazer, mas como não tenho o conhecimento necessário não sei dizer se é gambiarra ou não. Agradeço o interesse em me ajudar, muito obrigado.
  2. Sim, na verdade a 4 anos atraz desisti de fazer meu sistema funcinar em rede por causa de não funcionar direito, dai falei que podia fechar o topico, pois havia desistido, mas agora 4 anos depois, vi que não tem jeito, vou ter que fazer meu sistema funcionar em rede, dai pesquisando novamente o mesmo assunto cai nesse topico e só depois de fazer novamente a mesma pergunta percebi que era o topico que eu tinha criado a muito tempo atraz e não consegui apagar a pergunta, dai deixei a explicação da minha confusão. Eu esperava alguma configuração no componente mas percebi em em alguns selects eu não posso pegar dados novos do banco, e em outros sim como o return do insert por exemplo que, dai estou desconectando do banco de dados em alguns lugares do codigo e em outros não. ou seja acredito continuar na gambiarra, mas depois de 4 anos de estudo, a gambiarra ta menos feia e mais funcional. Mas uma vez peço desculpas pela confusão. DEUS abençoe a todos.
  3. Nossa que mancada, pesquisei pelo assunto e cai nesse post, depois de fazer a pergunta que percebi que eu mesmo criei esse post a tempos atras E até hj continuo com o mesmo problema
  4. Eu uso o Rustdesk a alguns meses, uso meu pc como servidor, achei excelente, recomento muito.
  5. A sim, peguei super firme nesse final de semana e já aprendi a fazer com o pacote weblaz que vem junto com o lazarus, muito obrigado pela atenção. , DEUS abençoe. Quem se interessar pode aprender nesse link.
  6. A sim, desculpa, sei que não tem nada a ver, é que estou apredendo sobre api vi uns videos onde citavam o ACBr e achei que tinha algo nesse sentido, obrigado.
  7. Que legal, tem algo no acbr hj em dia sobre fastcgi ou algo parecido com o horse?
  8. RibaSoft

    GMail API

    Olá, só passando para avisar que devido a complexidade e algumas falhas na API do Gmail, optei por usar o Spark Post como o Daniel Simões havia sugerido nesse link. Da minha parte pode se encerrar este post, DEUS abençoe a todos.
  9. RibaSoft

    GMail API

    Muito obrigado pela atenção, a parte do Id/client secret eu já fiz, só a estrutura de envio e quais classes usar que eu estou perdido, mas vou ver esse link que vc passou. DEUS abençoe
  10. RibaSoft

    GMail API

    Já uso o e-mail no meu sistema para envio de XMLs para o destinatários da NF e envio de XMLs no começo do mês para as contabilidades, sou autônomo, minha cidade é muito pequena e simples, não consigo agregar mais custo, mas muito obrigado pela atenção, vou usando o SMPT do SendGrid até conseguir voltar para o gmail. DEUS abençoe.
  11. RibaSoft

    GMail API

    Olá a todos, como o termino do gmail para aplicativos menos seguro por smtp está próximo, teria alguma possibilidade de criar um componente de email usando o api do gmail? tenho procurado conteúdo a dias na internet e não tenho encontrado nada (que eu tenha entendido). Se alguém puder me dar uma luz eu ficarei muito grato e caso eu consiga desenvolver algo funcional e for de interesse de todos postarei aqui o resultado.
  12. Que bom que deu certo, fico muito feliz em poder ajudar DEUS abençoe
  13. Boa tarde auxSTATUS := NFC.NotasFiscais.Items[0].NFe.procNFe.cStat; auxProtocolo := NFC.NotasFiscais.Items[0].NFe.procNFe.nProt; auxXMOTIVO := NFC.NotasFiscais.Items[0].NFe.procNFe.xMotivo; Assim funciona certinho pra pegar os retornos. Desculpe ter postado duas vezes, achei que tinha aparecido a pergunta do T2 Sistemas
  14. Boa tarde auxSTATUS := NFC.NotasFiscais.Items[0].NFe.procNFe.cStat; auxProtocolo := NFC.NotasFiscais.Items[0].NFe.procNFe.nProt; auxXMOTIVO := NFC.NotasFiscais.Items[0].NFe.procNFe.xMotivo;
  15. Boa tarde, um contador pediu pra eu fazer pra ele, a parte fiscal eu não entendi muito bem, mas quem quiser fazer essa operação do SISCRED, é esse arquivo gerado que envia. Pelo que entendi é pra transferir créditos de uma pessoa para outra, de todos os contadores que conheço só um mexeu com isso, por isso é tão difícil achar isso na net e por isso eu quis contribuir caso alguém precise. Mas caso não seja conveniente esse post que criei pode excluir por favor. DEUS abençoe
  16. Olá a todos, criei uma classe para gerar o arquivo para o siscred e gostaria de compartilhar com vcs. o arquivo gerado ja foi validado. DEUS abençoe a todos. Sobre o SISCRED => www.fazenda.pr.gov.br/Pagina/conhecer-Siscred libSISCRED.pas unitPrincipal.pas
  17. Eu tambem fiquei na duvida lendo o manual, mas explicando assim entedi certinho .
  18. * Ajustei com um Break no for pra ele pegar o primeiro item for I := 0 to Pred(auxItens.Count) do begin auxItem := UpperCase(Copy(auxItens[I], 1, Length(MemKey))); if(auxItem = MemKey)then begin Result := I; Break; end; end;
  19. * Olá * Corrigi a função pois ela estava funcionado apenas com dois dígitos. * Na UF funcionou de boa, mas quando fui usar nos municípios que vi a caca que eu tinha feito. * Dai a função ficou assim... //========================== COMBO BOX KEY ===================================\\ function TRiba.ComboBoxKey(const AKey: char; AItens: TPersistent): integer; var auxItens: TStringList; I: integer; auxItem: string; begin MemKey := MemKey + FormataTexto(AKey); try auxItens := TStringList.Create; auxItens.Assign(AItens); for I := 0 to Pred(auxItens.Count) do begin auxItem := UpperCase(Copy(auxItens[I], 1, Length(MemKey))); if(auxItem = MemKey)then Result := I; end; finally auxItens.Free; end; TimerMemKey.Enabled := True; end; * E pra chamar ela ficou assim... //============================= CB UF KEY PRESS ==============================\\ procedure TFormClientes2.cbUFKeyPress(Sender: TObject; var Key: char); begin if (key = #13) then Exit; (Sender as TComboBox).ItemIndex := Riba.ComboBoxKey(Key, (Sender as TComboBox).Items); Key := #0; end; * Desculpa a falha!
  20. nossa desculpa, vou ver onde vc colocou e da proxima vez já coloco no lugar certo. DEUS abençoe
  21. * Olá, procurei muito por essa solução e como não encontrei decidi disponibilizar aqui a forma que eu pensei para o ComboBox do lázaros aceitar mais dígitos quando a propriedade Style = csDropDownList * Como a função em uma classe criei o Timer em tempo de exeção... * uses para criar o timer ExtCtrls var MemKey: string; //================================ CREATE ====================================\\ constructor TRiba.Create; begin TimerMemKey := TTimer.Create(nil); TimerMemKey.Interval := 1000; TimerMemKey.Enabled := False; TimerMemKey.OnTimer := @TimerMemKeyOnTimer; MemKey := ''; end; //================================= DESTRUCTOR ===============================\\ destructor TRiba.Destroy; begin TimerMemKey.Free; inherited Destroy; end; //================================ TIMER =====================================\\ procedure TRiba.TimerMemKeyOnTimer(Sender: TObject); begin MemKey := ''; TimerMemKey.Enabled := False; end; * Dai a função ficou assim... //========================== COMBO BOX KEY ===================================\\ function TRiba.ComboBoxKey(const Key: char): string; begin MemKey := MemKey + Key; Result := MemKey; TimerMemKey.Enabled := True; end; * E no evento on key press do combobox ficou assim... //============================= CB UF KEY PRESS ==============================\\ procedure TFormClientes2.cbUFKeyPress(Sender: TObject; var Key: char); begin //to usando o sender para poder anexar todos os combobox do form ao mesmo evento (Sender as TComboBox).Text := Riba.ComboBoxKey(Key); Key := #0; end; //===========================================================================\\ Se essa solução não for apropriada peço desculpa aos moderadores e peço que exclua essa portagem por favor. DEUS abençoe a todos!
  22. Olá, passando pra pedir desculpas por não conseguir colaborar no componente ADRCST do ACBR, pois sou limitado pelo meu pouco conhecimento e não consegui me adaptar ao padrão em que os componentes ACBr são feitos. Continuo a disposição para disponibilizar a classe que eu criei do meu jeito que graças a DEUS esta funcionando e validando todos os arquivos junto ao site do Receita PR Também aproveito para informar que para o Simples Nacional não é mais obrigatório o envio ADRCST a partir do mês que vem referente a este mês, pois o Simples entra como optante automático a isenção, quem quiser mais detalhes procurar por esse assunto https://vbrbrasil.com.br/parana-institui-rot-st/ Da minha parte pode-se encerrar esse tópico e quem precisar de ajuda, no pouco que sei estou a disposição para ajudar. Podem me encontrar pelo site https://www.ribasoft.com.br/ DEUS abençoe a todos.
  23. Geralmente algumas palavras em maiúsculo como REF dão esse problema, eu passei td pra minúsculo pra contornar até que a receita resolva isso
  24. blz, brigadão, vou ver certinho lá e assim que pronto retorno, DEUS abençoe.
  25. Agradeço o Antonio Tota, por ter descoberto o problema e compartilhado e o BigWings, pela sua atenção conosco e ter enviado a correção, da minha parte também está resolvido, DEUS abençoe a todos
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...