Jump to content
Fivewin Brasil

Yury

Membros
  • Posts

    873
  • Joined

  • Last visited

  • Days Won

    1

Yury last won the day on April 10 2016

Yury had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Yury's Achievements

Newbie

Newbie (1/14)

3

Reputation

  1. //-------------------------------------------------------------------- PROCEDURE ErrorSys() ErrorBlock( { |erro| F_ERRO(erro) } ) RETURN //-------------------------------------------------------------------- FUNCTION F_ERRO(erro) // erros 'Server has gone away' e 'Lost connection to MySQL server during query' // retorna .F. para o gerenciados de erros para que o servidor faça o auto-reconnect IF erro:genCode == 1000 RETURN .F. EndIf ... ... ... RETURN //-------------------------------------------------------------------- Olá Uma forma prática de vc tratar isso é na sua rotina de gerenciamento de erros colocar um RETURN quando ocorrer os erros de perda de conexão para que não gere erro para o usuário e nem aborte o sistema ; em vez disso ao ser feita uma nova query a conexão é restabelecida ; a menos que o serviço tenha caído ou o servidor não esteja mais disponível, mas daí não teria muito oq fazer mesmo As causas do lost conection ou server has gone away são muito variadas Depois que eu passei a tratar dessa forma melhorou 100% Uso SQLLIB, mas para SQLRDD não deve fugir muito deste conceito, basta vc verificar que código de erro que a SQLRDD retorna quando ocorre os erros no MYSQL (no caso da SQLLIB é gencode = 1000) Abraço
  2. Olá Utilize o parâmetro da TPrinter para MODAL PRINTER oPrn FROM USER PREVIEW NAME "Impressao" MODAL ou utilize a PrintBegin, acho bem mais fácil oPrinter:=PrintBegin("Impressão", .T., .T., NIL, .T.) Abraço PS: o post q vc fez ficou muito ruim de ler pois alguns caracteres especiais não ficaram corretos, antes de postar outra coisa veja se consegue corrigir isso
  3. Sérgio vc poderia utilizar a "bGotFocus" e "bLostFocus" do xBrowse, creio q daria certo, algo assim: obj:bGotFocus := {|| oBtn:Disable() } obj:bLostFocus := {|| oBtn:Enable() } abraço
  4. Olá dbBAS1 = é o banco/tabela de origem, onde os registros de clientes são cadastrados dbBAS2 = é o banco/tabela cópia, onde os registros de clientes serão copiados do banco de origem quando executar o acima cDelete:="DELETE FROM dbBAS2.tbClientes" sqlExecute(cDelete) // deleta todos os clientes da base cópia cInsert:='INSERT INTO dbBAS2.tbClientes SELECT * FROM dbBAS1.tbClientes' sqlExecute(cInsert) // copia todos os clientes da base de origem para a base cópia // é necessário que as estruturas estejam idênticas dbBAS1 = é o banco/tabela de origem, onde os registros de clientes são cadastrados dbBAS2 = é o banco/tabela cópia, onde os registros de clientes serão copiados do banco de origem quando executar o acima cDelete:="DELETE FROM dbBAS2.tbClientes" sqlExecute(cDelete) // deleta todos os clientes da base cópia cInsert:='INSERT INTO dbBAS2.tbClientes SELECT * FROM dbBAS1.tbClientes' sqlExecute(cInsert) // copia todos os clientes da base de origem para a base cópia // é necessário que as estruturas estejam idênticas Abraço
  5. Olá Vc pode criar um clipboard (área de transferência) ... DEFINE CLIPBOARD oClip OF oTela oClip:clear() oClip:setText( cValor ) ... o conteúdo da variável cValor estará disponível na área de transferência para colar onde desejar se o objeto onde vc quiser colar for manipulável vc pode usar oClip:GetText() para retornar o valor que está no clipboard e pode atribuir direto à propriedade/método Abraço
  6. Olá vc pode usar o having como disse o Evandro ou fazer sub select como disse o Eric para sub select veja o exemplo abaixo: SELECT * FROM ( SELECT CLNOME AS NOME_CLIENTE,CLCDCL AS COD_CLIENTE FROM ERCL01MS ORDER BY CLNOME) AS T1 WHERE T1.NOME_CLIENTE LIKE '%IND%' Abraço
  7. Olá private lFocoLbx1:=.F., lFocoLbx2:=.F. oLbx1:bGotFocus := {|| lFocoLbx1:=.T., lFocoLbx2:=.F. } ... oLbx2:bGotFocus := {|| lFocoLbx1:=.F., lFocoLbx2:=.T. } Abraço
  8. boa noite Vailtom excelente notícia, muito obrigado abraço
  9. boa tarde Valdir aqui nós utilizamos SQLLIB, funciona bem, mas como vc bem lembrou foi descontinuada, então não recomendo, pois vai impossibilitar vc de atualizar a versão do xHarbour e consequentemente do FW (estou utilizando atualmente FW 8.01 e xHb 1.1.0 ) a SQLRDD utiliza o mesmo conceito de simular um RDD da SQLLIB (além de possibilitar o uso de MSSQL e Oracle, a SQLLIB somente pode utilizar MySql e Postsgree) esse conceito de simular o RDD ajuda muito quem não pode converter tudo para SQL , pois vc pode continuar com os programas rodando com DBSEEK, DBUSEAREA, DBSKIP, etc... TDolphin e ADO (até onde eu conheço) não permitem que vc faça isso, tem que ser tudo por meio de querys , então para utilizar vc teria que converter todos os programas ; a vantagem é que é free, mas também não há suporte portanto, se eu fosse iniciar nesse momento um projeto para utilizar BD com FW e xHB eu escolheria a SQLRDD abraço
  10. Olá Imagino que esteja se referindo a CORRUPÇÃO DOS ÍNDICES NTX DA TABELA, correto ? se sim, poste aqui o erro que é apresentado, por exemplo: Descricao do Erro: Corruption detected Codigo de Geracao de Erro: 32 Arquivo com Erro: S:\cep\cli\msc901ms.dbf Codigo de Erro do Subsistema: 1012 Erro do Subsistema: DBFCDX abraço
  11. cNomeTabela := 'TAB_CLI' cNomeIndice := 'TAB_CLI1' cAliasTabela:= 'CLI' cExpress := 'cCidCliente' DBUSEAREA(.T.,'MySQL',cNomeTabela,cAliasTabela,.T.) DBSELECTAREA(cAliasTabela) DBCREATEINDEX(cNomeIndice,cExpress)
  12. Olá no caso de usar comandos/FUNÇÕES Clipper/xHB para criar o índice vc deve montar o índice sem utilizar funções como strzero, dtos, etc... ou seja deve ser somente campo + campo +campo, exemplo: nCodCliente + cNomeCliente outra coisa: lembre-se que vc somente consegue criar índices para TABELAS existentes, nesse caso do USE SQL vc não está criando uma tabela, somente uma instrução ; vc poderia facilmente colocar um ORDER BY na sua instrução para resolver a questão, exemplo: USE SQL "SELECT nCodCliente,cNomeCliente,cCidCliente,cUFCliente FROM TAB_CLI ORDER BY nCodCliente,cNomeCliente" ALIAS "CLI" NEW VIA "MySQL" Abraço
  13. Olá Samir então de que forma o seu EXE é contaminado pelo vírus ? Abraço
  14. Olá a forma mais básica de contágio de vírus ou código malicioso nos EXEs é o vírus adicionar o código dele junto ao código do EXE e regravar o arquivo, alterando o tamanho, data, hora, etc... do EXE sendo assim você pode alterar as permissões de gravação do arquivo EXE, desta forma o vírus não conseguirá regravar o arquivo e ele não ficará contaminado Abraço
  15. Olá http://forums.fivetechsupport.com/viewtopic.php?f=6&t=24131&p=129987&hilit=JSON#p129987 http://forums.fivetechsupport.com/viewtopic.php?f=6&t=25879&p=141543&hilit=JSON#p141543 Abraço
×
×
  • Create New...