MariaDB

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

MariaDB

Mensagem por asimoes »

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

MariaDB

Mensagem por asimoes »

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

MariaDB

Mensagem por Fernando queiroz »

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

Código: Selecionar todos

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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

MariaDB

Mensagem por Fernando queiroz »

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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MariaDB

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder