Clipper On Line • Ver Tópico - MariaDB

MariaDB

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

MariaDB

Mensagempor JoséQuintas » 07 Fev 2020 00:53

mariadb.png


Restaurando backups do Mariadb.

Interessante:
Tinha reservado 1GB para o MariaDB... mas no final foi até pior.
O default da instalação ficou melhor: 500MB, na máquina de 4GB.

Nota:
o default do MySQL é 50MB, dá erro em certas querys, se não alterar isso manualmente.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor JoséQuintas » 24 Fev 2020 21:32

Isso de restaurar tudo de uma vez tá virando rotina...
É que preciso testar conversões...

restoremysql.png
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor JoséQuintas » 04 Mar 2020 20:16

Estou desinstalando MariaDB do meu servidor.
Nenhum problema com ele, mas com não aceitar no servidor do cliente usando MySQL.

Erro executando comando:-2147217900 [ma-3.1.6][5.7.12-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DOUBLE(10,2) ) AS VALOR FROM ( SELECT NFCADASTRO, COUNT(*) AS QTD, MIN( NFDATEMI' at line 1
Called from ADOCLASS:EXECUTECMD(255)


Isso funciona normalmente no MariaDB, mas não no MySQL.

Não adianta funcionar aqui comigo se não funcionar nos clientes.

Só por isso.
Depois, quando todos os clientes estiverem com MariaDB, aí tudo bem.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor JoséQuintas » 04 Mar 2020 20:34

No MariaDB aceitou CAST( x AS DOUBLE(10,2) )
No MariaDB CREATE TABLE IF NOT EXISTS, se a tabela já existe, o MariaDB não valida o restante do comando.

No primeiro caso, alterei pra DECIMAL(10,2)
No segundo caso, fiz a correção do CREATE.

O ruim/perigoso é dar esse problema na troca de versão, durante centenas de atualizações.

É até uma situação engraçada:
Vou retirar o MariaDB porque o problema é no MySQL kkkk

Importante:
- o MySQL é 5.7, talvez no 8.0 isso funcione normalmente.
- o MariaDB é o mais recente
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor asimoes » 04 Mar 2020 22:18

Quintas,

Ainda bem que eu partir direto pro MariaDb, espero sucesso no meu investimento, porque o meu cliente não vai pagar mais nada por isso, saindo de dbf ele está no lucro e eu aprendendo muito!
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

MariaDB

Mensagempor asimoes » 04 Mar 2020 22:20

Quintas, como é que você faz pra pegar o IP do servidor na máquina cliente pra conexão com o banco, só pra comparar com o que eu tenho aqui
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

MariaDB

Mensagempor JoséQuintas » 05 Mar 2020 00:26

asimoes escreveu:Quintas, como é que você faz pra pegar o IP do servidor na máquina cliente pra conexão com o banco, só pra comparar com o que eu tenho aqui


Tenho configuração no aplicativo pra isso, senão teria que ficar pesquisando servidores, e pode ter mais de um, ou ser em qualquer lugar.

asimoes escreveu:Ainda bem que eu partir direto pro MariaDb, espero sucesso no meu investimento,


O MariaDB funciona muito bem, tanto quanto o MySQL.

É que no meu caso são vários servidores em lugares diferentes, teria que entrar em cada servidor pra fazer a troca.
E como estou ainda na fase de migração, sem uso de nada avançado, é muito trabalho pra pouca coisa.

Estou trabalhando muito no aplicativo.
Até o final de março, quero apagar todos os fontes de conversão que existem hoje.
Esse negócio de manter conversões anteriores durante a migração não está dando muito certo.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor Fernando queiroz » 13 Mar 2020 17:46

asimoes escreveu:Quintas,

Descobri o problema, não tem tratamento para campo lógico.

Inclui esse código

CASE oStru[ nCont, DBS_TYPE ] == "L"
cSql += " VARCHAR( " + Ltrim( Str( oStru[ nCont, DBS_LEN ] ) ) + " ) DEFAULT 'F' "

Era esse o problema.

2020-01-27 19_55_05-Window.png

Foi criado também essa função para tratar o lógico
FUNCTION LogicSql( lLogic )

   LOCAL cString

   Hb_Default(@lLogic, .F.)
   
   cString := IF( lLogic, "'T'", "'F'" )

   RETURN cString

CASE ValType( xValue ) == "L"
cSql += LogicSql( xValue )


EU ESTOU USANDO
CASE oStru[ nCont, DBS_TYPE ] == "L"
cSql += "TINYINT(1) DEFAULT 0, " ONDE 0 = .F. e 1 ou maior = .T.
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

MariaDB

Mensagempor JoséQuintas » 13 Mar 2020 18:39

Confirmado. Prova teste:

SELECT * FROM JPAGENDA WHERE 1

SELECT * FROM JPAGENDA WHERE 0

Com 1 retorna tudo, porque 1 é .T.
Com 0 não retorna nada porque 0 é .F.

SELECT * FROM JPAGENDA WHERE 10000

Isso também retorna tudo, porque qualquer coisa diferente de ZERO é .T.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

MariaDB

Mensagempor Fernando queiroz » 13 Mar 2020 19:35

pode ser usado também um campo TINYINT desta forma

SELECT * LOGGERAL WHERE LOGGERAL_FRACIONADO IS TRUE;
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

MariaDB

Mensagempor JoséQuintas » 13 Mar 2020 20:33

Sim
Apesar de servir qualquer campo numérico, o TINYINT seria o menor numérico que existe.
A gente olhando, parece a mesma coisa, mas internamente é salvo com "menos bits".

tinyint.png


Olha lá o limite de 32 bits, 2GB se usar int com sinal de negativo, ou 4GB se usar somente número positivo.
Lembrando que 1 byte = 8 bits, portanto 4 bytes = 4 x 8 = 32bits
Aqui só por curiosidade.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 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