Clipper On Line • Ver Tópico - Agilizar número pra string

Agilizar número pra string

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Agilizar número pra string

Mensagempor JoséQuintas » 22 Dez 2019 19:12

Minha rotina de backup do MySQL está lenta, e parece que a causa disso é a conversão.
Números de origem fora do Harbour são tratados diferentes de números internos do Harbour.
Uso:

- ValType() pra testar o tipo de conversão
- No caso de números, se resultar em 1.00000, vou removendo os zeros, e o ponto
- E vou acumulando numa string até 500KB, antes de gravar no disco.

Já removi o Len() que fazia no texto de até 500kb, substituindo pelo Len() dos trechos individuais
Imagino que texto menor calcula mais rápido...

É algo do tipo:
FOR nCont = 1 TO FCount()
   xValue := FGet( nCont )
   DO CASE
   CASE ValType( xValue ) == "N"; xValue := NumberSql( xValue )
   CASE ValType( xValue ) == "D"; xValue := DateSql( xValue )
   OTHERWISE                          ; xValue := StringSql( xValue )
   ENDCASE
  cTexto += xValue
NEXT


Alguma idéia pra agilizar isso?
Agora durante post.... talvez cType := ValType( xValue ) uma única vez agilize alguma coisa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18157
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Agilizar número pra string

Mensagempor Marcos Kieron » 15 Jan 2020 14:45

hb_valtostr()?
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes

Agilizar número pra string

Mensagempor JoséQuintas » 15 Jan 2020 16:28

Melhor esquecer, não vai ter opção melhor.

Na verdade trata-se do conjunto.
o conteúdo pode ser NULL pra qualquer um deles, e além disso:

Data: '2020-01-01'
Número: 1, 1.52, 1.5, 1.57892
String: 'dd\'dd'

1.000000000000000
Não compensa isso no backup, então minha rotina transforma em 1, apenas um caractere.

O Harbour trata números de forma diferente, conforme vém de DBF ou MySQL/OLE.
E tem o SET DECIMALS, que pode interferir no resultado.

São essas coisas que deixam mais demorado.

Deixar como está, e se as bases crescerem muito, deixo de fazer pelo Harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18157
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Agilizar número pra string

Mensagempor Marcos Kieron » 17 Jan 2020 12:21

Usar as ferramentas nativas do MySQL não servem no seu caso?
Marcos Kieron
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 66
Data de registro: 14 Jan 2020 10:29
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 5 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro