Clipper On Line • Ver Tópico - MariaDB

MariaDB

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

Moderador: Moderadores

 

MariaDB

Mensagempor asimoes » 26 Jan 2020 11:27

Quintas,

Qual é o ConnectionString para MariaDb ?

oConexao := Win_OleCreateObject( "ADODB.Connection" )

oConexao:ConnectionString := ""

Consegui:

oConexao:ConnectionString := "DRIVER={MariaDB ODBC 3.1 Driver}; SERVER=LOCALHOST; PORT=3306; DATABASE=asaprev; UID=root; PASSWORD=teste;OPTION=3;"
â–º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 » 26 Jan 2020 12:13

Olá Quintas,

Tem como postar as dependências da seu utilitário de transferência:
hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
       CNFDBFIND(), WACHOICE(), MENSAGEM(), ADOCLASS(), APPCONEXAO(),
       SAYSCROLL(), GRAFTEMPO(), NUMBERSQL(), DATESQL(), STRINGSQL(),
       ADORECCOUNT()
â–º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 » 26 Jan 2020 12:53

É que na verdade não é utilitário, tá dentro do aplicativo.
Vou verificar o que dá pra fazer.

Aqui preparando pra refazer os testes com o conector Mariadb.

Sem paciência de esperar, só resta restaurar vários backups ao mesmo tempo.... rs

Nota: W10 normal, HeidiSQL normal, MariaDB normal...

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

MariaDB

Mensagempor JoséQuintas » 26 Jan 2020 13:05

Durante a restauração, até renomear tabela em uso acabei fazendo sem querer kkk
Acabou aparecendo esta mensagem:

mariadb.png


backup restaurado, hora de rodar o aplicativo.

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

MariaDB

Mensagempor JoséQuintas » 26 Jan 2020 13:16

O aplicativo faz backup, e todas as conversões desde a data do backup até agora, enviando pra MySQL o que precisar, etc.
Aonde chegou no login/senha, é porque terminou, está pronto pra uso.
Das 11 empresas, faltam 3.

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

MariaDB

Mensagempor JoséQuintas » 26 Jan 2020 13:55

Procurei reduzir as dependências.
Precisa alterar o test.prg e testar.

PROCEDURE Main

   LOCAL oFile, cFile

   AppConexao( MySqlConnection( "servidor", "banco", "usuario", "senha" ) )

   FOR EACH oFile IN Directory( "*.dbf" )
      cFile := oFile[ F_NAME ]
      cFile := Substr( cFile, 1, At( ".", cFile ) - 1 )
      CopyDbfToMySql( cFile, .T., .T., .T. )
   NEXT
// FUNCTION CopyDbfToMySql( cTable, lTransfere, lCria, lZera, cNewTable )

   RETURN


test.zip
(15.3 KiB) Baixado 183 vezes
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: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

MariaDB

Mensagempor JoséQuintas » 26 Jan 2020 16:18

Erro executando comando:-2147217900 [ma-3.1.6][5.5.66-MariaDB]Unknown column 'JPCADASTRO.CDNOME' in 'field list'


Estou alterando um relatório, e esqueci de indicar o JPCADASTRO nos relacionamentos.... rs
Normal o erro.

Interessante na mensagem de erro:
ODBC: 3.1.6 (MariaDB)
Servidor: 5.5.66 (MariaDB)
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: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

MariaDB

Mensagempor asimoes » 26 Jan 2020 16:30

Quintas,

Maravilha, consegui gerar o exe e fiz a carga pro MariaDB, agora vou me diverti com a Maria, kkk, sem zueira, o legal é que mais colegas se interessem pelo assunto.
â–º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 » 26 Jan 2020 17:18

Quintas,

Em uma tabela durante a carga deu esse erro:

Erro executando comando:-2147217913 [ma-3.1.6][10.4.11-MariaDB]Incorrect string value: '\xC2\x82lia ...' for column `asaprev`.`admsaude`.`NOME` at row 536
Called from ADOCLASS:EXECUTECMD(226)
Called from COPYDBFTOMYSQL(119)
Called from MAIN(27)

at row 536 é o recno do dbf ?

2020-01-26 17_17_10-Window.png


São registros com acentuação o nome está com acento: xxx Valério de yyyy

Descobri tem usar esse código página

Hb_cdpSelect( "PT850" )

Acho que tem relação com isso Collation=latin1_swedish_ci; na ConnectionString

Se usar hb_cdpSelect( "PTISO" ) ocorre o erro

Vou ter que usar uma função para remover acentos
â–º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 » 26 Jan 2020 17:55

asimoes escreveu:Vou ter que usar uma função para remover acentos


Foi o que comentei.
Quando comecei a converter peguei alguns caracteres diferentes, e coloquei na conversão.
Acabei deixando a rotina para o que fui encontrando nas minhas bases DBF.

Acaba até sendo interessante fazer a rotina de cadastrar automático pelo Harbour, porque assim já confirma se precisa ajustar alguma coisa, não só nesse momento de incluir, mas principalmente pro dia a dia.

Foi quando testei tudo junto que padronizei pra PTISO.
Foi a que melhor atendeu tudo de uma vez: editor de texto, tela, MySQL, site, etc.
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: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

MariaDB

Mensagempor asimoes » 26 Jan 2020 18:21

Está reclamando de caracteres especiais

R HILARIO DE GOUVEIA, 91/501

Erro executando comando:-2147217913 [ma-3.1.6][10.4.11-MariaDB]Incorrect string value: '\xE2\x96\x91 10...' for column `asaprev`.`apc01`.`ENDERECO` at row 228
Called from ADOCLASS:EXECUTECMD(227)
Called from COPYDBFTOMYSQL(113)
Called from MAIN(29)

Não sei o que pode ser.
â–º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 » 26 Jan 2020 18:37

Não consigo sair disso

Já defini a codepage para PTISO,

Erro executando comando:-2147217913 [ma-3.1.6][10.4.11-MariaDB]Incorrect string value: '\xC2\x82 IDO...' for column `asaprev`.`apc01`.`PROV` at row 1308
Called from ADOCLASS:EXECUTECMD(227)
Called from COPYDBFTOMYSQL(113)
Called from MAIN(29)

Se at row 1308 for o registro n dbf, esse campo PROV está vazio !, ainda não entendi o problema.
â–º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 » 26 Jan 2020 19:34

asimoes escreveu:Não consigo sair dissoJá defini a codepage para PTISO,
Erro executando comando:-2147217913 [ma-3.1.6][10.4.11-MariaDB]Incorrect string value: '\xC2\x82 IDO...' for column `asaprev`.`apc01`.`PROV` at row 1308
Called from ADOCLASS:EXECUTECMD(227)
Called from COPYDBFTOMYSQL(113)
Called from MAIN(29) Se at row 1308 for o registro n dbf, esse campo PROV está vazio !, ainda não entendi o problema.


Tem um detalhe em caracteres especiais: alguns não são "mostráveis". não aparece nada, mas tem caractere lá.

Usa aquela rotina tradicional pra teste:

FOR EACH cLetra IN cCampo
   DO CASE
  CASE cLetra $ "abcdefghijklmnopqrstuvwxyz"
   CASE cLetra $ "ABCDEFGH..."
   CASE cLera $ " ,+-()"
   OTHERWISE
       ? cLetra, Asc( cLetra ), Substr( cCampo, cLetra:__EnumIndex - 10, 20 )
   ENDCASE
NEXT


Vai cercando os caracteres válidos, pra ver o que sobra.
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: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

MariaDB

Mensagempor asimoes » 26 Jan 2020 20:10

Quintas,

Achei um caracter ¦ no campo endereço, não tem alguma sintaxe que permita a inclusão desses registros com caracteres especiais?
â–º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 » 26 Jan 2020 20:39

asimoes escreveu:Achei um caracter ¦ no campo endereço, não tem alguma sintaxe que permita a inclusão desses registros com caracteres especiais?


Se for pensar direito, melhor remover mesmo, porque não faz sentido isso no endereço.
Acrescenta naquela função de limpeza.

O caractere não existe no conjunto do banco, por isso o erro.
Se não fosse isso, existe a opção de usar "\".
Por exemplo, o Chr(13) não grava, mas... se usar "\" + Chr(13) ok.
Ou a própria "\", trocar por "\\"
Se for fazer isso, não esquece a ordem, primeiro trocar "\", depois o resto.
Até mesmo aspas simples, que é controle de string: \'

Exemplo:
FUNCTION StringSql( cStr )

   cStr := StrTran( cStr, "\", "\\" )
   cStr := StrTran( cStr, ['], [\'] )
   cStr := StrTran( cStr, Chr(13), "\" + Chr(13) )

   RETURN cStr


Aquela aspas simples pode existir em 'RUA D'ALVA', aí trocaria pra 'RUA D\'ALVA'

Por isso eu uso em meus fontes StringSql( cCampo ), pra fazer uma prévia do que não pode, ou pra esses "\"
De quebra pode evitar injeção de SQL, aquilo do usuário colocar SELECT ou algo parecido dentro de um campo pra executar algum comando.
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: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Anterior Próximo



Retornar para Banco de Dados

Quem está online

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