Yury
-
Posts
873 -
Joined
-
Last visited
-
Days Won
1
Posts posted by Yury
-
-
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
-
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
-
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ênticasAbraço
-
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
-
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
-
Olá
private lFocoLbx1:=.F., lFocoLbx2:=.F.
oLbx1:bGotFocus := {|| lFocoLbx1:=.T., lFocoLbx2:=.F. }
...
oLbx2:bGotFocus := {|| lFocoLbx1:=.F., lFocoLbx2:=.T. }
Abraço
-
boa noite Vailtom
excelente notícia, muito obrigado
abraço
-
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
-
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
-
cNomeTabela := 'TAB_CLI'
cNomeIndice := 'TAB_CLI1'
cAliasTabela:= 'CLI'
cExpress := 'cCidCliente'DBUSEAREA(.T.,'MySQL',cNomeTabela,cAliasTabela,.T.)
DBSELECTAREA(cAliasTabela)
DBCREATEINDEX(cNomeIndice,cExpress)
-
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
-
Pode verificar a integridade a partir do MD5, mas os problemas que já tive nunca foram por causa do vírus se juntando ao executável...
Olá Samir
então de que forma o seu EXE é contaminado pelo vírus ?
Abraço
-
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
-
-
Olá, bom dia
você tem que diminuir 1 do contador do FOR quando redimensiona o array para um tamanho menor
e pode utilizar o Adel conforme a Ana falou, não precisa fazer aSize
for i=1 to len(aPlano7)
if aPlano7[i,9]<>0
if aPlano7[i,7]<>aPlano7[i,9]
if aPlano7[i,1]='010000014'
endif
DelMatriz(aPlano7,i)
i:=i-1 // aqui diminui um do contador
endif
endif
nextAbraço
-
Ok, valeu João
estou "encalacrado" com a questão da SQLLIB, não sei até que ponto posso atualizar o FW, pois a partir de uma determinada versão para frente (por causa do xHarbour) a SQLLIB não compila mais
tem um outro post do Marcelo Ferro sobre isso, onde o Vailtom até respondeu, mas nem ele soube dizer ao certo até qual versão é compatível
para os que utilizam SQLLIB: se puderem postar qual é a configuração FW e xHB que estão utilizando seria de grande ajuda para esclarecer isso
Abraço e obrigado
-
Olá João, obrigado pela resposta
vi que vc com a versão FW 13.06
qual o xHarbour e bcc vc está usando pra compilar ?
abraço
-
Olá pessoal
gostaria de saber até qual versão do FW é possível compilar com o xHarbour build 1.1.0 (SimpLex) & BCC 5.5.1 ?
é xHarbour não comercial
abraço e obrigado
Yury
-
Olá
esse erro as vezes ocorre em razão de ter um refresh de tela (um msginfo, por exemplo) entre o momento que vc zera a tabela relacionada ao browse e o momento em que vc carrega um novo conteúdo, populando novamente a tabela
uma dica para que não ocorra é nunca deixar a tabela vazia, veja este exemplo:
aCols:= {"","< sem registros >",0,0,0} // "zere" a tabela assim
ADDD( aCols , {"001" , "AAAAAAAAAAA" , 10 , 1 , 10 } ) // recarregue os dados
ADDD( aCols , {"002" , "BBBBBBBBBBB" , 10 , 2 , 20 } )
ADDD( aCols , {"003" , "CCCCCCCCCCC" , 10 , 3 , 30 } )
for N:=1 TO LEN(aCols) // remova o item em branco
IF EMPTY(aCols[N,1])
ADEL(aCols,N,.T.)
N--
ENDIF
NEXT
oBrw:SetArray( aCols ) // atualizar a tabela do obejto
oBrw:GoTop()
oBrw:lHitBottom:=.F.
oBrw:Refresh()Abraço
-
Olá
oLbx:nClrText := {|| IF(PR->PRESTQ < PR->PRESTQMIN, CLR_HRED,CLR_BLACK) }
// cor da linha
oLbx:nClrPane := {|| IF(PR->PRESTQ < PR->PRESTQMIN, CLR_LRED,CLR_WHITE) }
// cor do fundo
Abraço
-
É exatamente em pontos em que carrega bastante informação em arrays, utilizando sqlarray da SQLLIB, por exemplo
bom, por enquanto eu vou contornando com o hbgcall
de qualquer forma obrigado pela atenção
Abraço
-
Olá Eduardo, boa tarde
primeiramente obrigado por compartilhar a informação
utilizo xHabour NÃO COMERCIAL, mas também tenho problemas eventuais com o xrealloc , que resolvo com o hbgcall
sobre a solução que vc apresentou, verifiquei a lib que vc citou (optg) não está sendo compilada no meu projeto (utilizo xDev para compilar)
vc apurou mais alguma informação sobre isso ?
Abraço e obrigado
-
Olá
use RUN
// The example executes the DIR command, directs its output into // a file and displays the result with Notepad.exe PROCEDURE Main LOCAL cCommand := "Notepad.exe files.lst" CLS ? "DIR command" RUN dir > files.lst ? "Executing Notepad.exe" RUN (cCommand) ? "Done" RETURN
Abraço
-
Olá
me parece que os erros acima listados ocorrem pq está utilizando uma área diferente, por causa de "Select(xDbMov)" , pois vc está usando sem o ponteiro ( -> )
coloque na sua rotina que documenta os erros para salvar/exibir qual o ALIAS atual que está em uso e a estrutura do arquivo associado a este ALIAS (dbstruct)
isso vai auxiliar vc a identificar oq está ocorrendo
Abraço
MySQL server has gone away...
in Programação
Posted
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