Página 4 de 4
MariaDB
Enviado: 07 Fev 2020 00:53
por JoséQuintas
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.
MariaDB
Enviado: 24 Fev 2020 21:32
por JoséQuintas
Isso de restaurar tudo de uma vez tá virando rotina...
É que preciso testar conversões...
MariaDB
Enviado: 04 Mar 2020 20:16
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.
MariaDB
Enviado: 04 Mar 2020 20:34
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
MariaDB
Enviado: 04 Mar 2020 22:18
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!
MariaDB
Enviado: 04 Mar 2020 22:20
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
MariaDB
Enviado: 05 Mar 2020 00:26
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.
MariaDB
Enviado: 13 Mar 2020 17:46
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.
MariaDB
Enviado: 13 Mar 2020 18:39
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.
MariaDB
Enviado: 13 Mar 2020 19:35
por Fernando queiroz
pode ser usado também um campo TINYINT desta forma
SELECT * LOGGERAL WHERE LOGGERAL_FRACIONADO IS TRUE;
MariaDB
Enviado: 13 Mar 2020 20:33
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".
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.