Vejam um programa Xharbour com Mysql

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Passei a noite para criar este tutorial para mim e quero divulga-lo para todos. Ele se baseia no tutorial que o DUDU Apresentou, mas fiz algumas modificações de forma a torna-lo mais interativo, não só explicando mas também apresentando o que fazer, como fazer e com o que fazer.

Requisitos:

MySQL 4.0.20a-nt
MySQL-Front 2.1
MySQL Mediator Server Free

TUTORIAL

1 - Baixe o MySQL 4, não pode ser outra versão, pois o Mediator exige isto, prefira o MySQL em formato não instalável e descompacte-o na pasta MySQL.

1.1 - Abra o Prompt do DOS.
1.2 - Va ate a pasta C:\MYSQL.
1.3 - Execute o arquivo winmysqladmin.exe.

Para instalar o serviço MySQL faça assim:

Digite mysqld-nt -install para re-instala-lo ou digite mysqld-nt -remove para remover o servico do MySQL se estiver instalado.

2 - Baixe o MySQL Front 2.1, que é Free, pois as novas versões são pagas, trial, shareware, etc.

2.1 - Instale o MySQL Front e execute-o e conecte-se na conecção padrão sem modifica-la.
2.2 - Va em Tools/Create Database e crie um database com nome PDV2006
2.3 - Va em Tools/UserManager e coloque:

User - pdvmaster
Hostname - localhost
Password - pdvmaster

2.4 - Clique no botão Add User.
2.5 - Clique na aba Edit User.
2.6 - Clique no botão Refresh.
2.7 - Clique no botão Close.
2.8 - No menu File/Close feche a coneção e conecte-se novamente.

Em Conection to MySQL-Host:

2.9 - Clique em NEW e de o nome PDV2006 para sua conecção

Hostname - localhost
User - pdvmaster
Password - pdvmaster
Database - PDV2006

2.10 - Clique no botão Save.
2.11 - Clique no botão Connect.

2.12 - No menu File/Close feche a coneção e conecte-se novamente escolhendo PDV 2006 e coloque em:

User - pdvmaster
Password - pdvmaster
Database - PDV2006

2.13 - Clique no botão Save.
2.14 - Clique no botão Connect.

3 - Baixe o MySQL ODBC Driver 3.51 e instale-o.

3.1 - Va em Menu Iniciar/Configurações/Painel de Controle/Ferramentas Administrativas/Fontes de Dados (ODBC)

3.2 - Clique na aba System DSN/Fontes de dados de sistema .
3.3 - Clique no Botão Add/Adicionar.
3.4 - Selecione o MySQL ODBC 3.51.
3.5 - Clique em Concluir

Acrescente em:

Data Source Name - PDV2006
Database Name - PDV2006
User - pdvmaster
Password - pdvmaster

3.6 - Clique em Test Data Source e verifique se a resposta foi ...Connected Successfully..., senão refaça os passos novamente.
3.7 - Clique em OK
3.8 - Feche o painel Fontes de Dados (ODBC)

4 - Instale o RDD Mediator Server, procure na sua pasta de instalação pelo arquivo mediator.exe e execute-o.

4.1 - Clique em Start para iniciar o Mediator
4.2 - Clique em options
4.3 - Clique em Add no painel Users
4.4 - Marque a opção RDBMS no Painel users

Coloque em:

User - pdvmaster
Password - pdvmaster
Confirm - pdvmaster
Data Src. - pdv2006

4.5 - Clique em Ok e responda afirmativamente para inclusão do novo usuário e salve as configurações
4.6 - Clique em Save
4.7 - Clique em OK
4.8 - Minimize-o.

Coloque-o como serviço para que quando seu equipamento for iniciado ele comece a trabalhar:
4.9 - Vá na pasta do Mediator e digite medsvc -install.

5 - Faça o teste de conexão.

5.1 - O Mediator Client cria a pasta c:\MedCl, va na subpasta test e execute o programa hrbtest.exe

Username - pdvmaster
Password - pdvmaster
Data Src. - pdv2006
mediator IP - 127.0.0.1

Pronto! Se deu certo o programa exibe a mensagem : Conected to Mediator server...

6 - Compile o run1st.exe para teste.

6.1 - Altere a seguinte linha para:

logRes := MedLogin("","localhost","19C8","pdvmaster","pdvmaster","pdv2006")

6.2 - Compile com bld run1st. As tabelas CLPDB, CLPDB_MEMO, EMP e DEPT serão criadas.

PROBLEMAS OBTIDOS:

Eu já tinha o MySQL 4 instalado, mas quis instalar o MySQL 5, mas o serviço simplesmente não subia, em consequencia o serviço do MySQL 4 também parou de subir.

Instalei e desinstalei as duas versões várias vezes e nada.

Entrei no registro e detonei as chaves LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL e nada.

Então encontrei em meus diretórios o MySQL 3, instalei-o e o serviço subiu, mas o mesmo é incompativel com o Mediator que exige o MySQL 4.

Por consequencia o MySQL 5 também não é compativel com o Mediator.

Como o MySQL 3 subiu, fiz o seguinte:

Desliguei o serviço MySQL 3, descompactei o MySQL 4 em uma pasta temporária e copiei as pastas BIN, DATA e SHARE para o diretório onde instalei o MySQL 3.

Executei o winmysqladmin.exe e pronto. Não mexo mais.

@braços :?)
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Rochinha boa Noite.
Vc testou com fivewin o mediator o q vc achou ??


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Eu bolei o tutorial acima para que quando eu for instalar minha base nos clientes tenha um roteiro a seguir sem problemas e saber contornar os erros que vierem a ocorrer.

Fiz um teste em um aplicativo meu que contem dois .PRGs, um de controle dos PDVs, que chamo de concentrador e outro um PDV, que chamo de terminal leve.

Acrescentei as 3 linhas basicas e acrescentei as chamadas do .OBJ e das .LIBs no .BAT de compilação e pronto.

Executei e fiquei vendo cada tabela ser criada na tela do MySQL-Front. só senti falta de funções ou comando para verificação da existencia do database, criação do database, etc.

Mas como o database é criado somente uma unica vez então podemos continuar usando os SQL-Frontiers da vida.

Acrescentei a funcionalidade de criação do DSN na abertura do concentrador eliminando a enfadonha rotina de fazer isto manualmente.

Falta agora dar uma afinada nas funções xBase que tem funçòes compatibilizadas no Mediator e aí é só correr pro abraço.

Vou continuar trabalhando nisto e divulgando, nós precisamos disto.

Para quem já tem aplicações portadas para o mundo Harbour poderá em um ou dois dias mudar toda estrutura de dados.

Para quem tem aplicações em Clipper também, mas terá de usar as versões para até 5 usuários.

Nos dois caso veremos que a migração é praticamente indolor.

O conjunto Mediator Free + MySQL 4 + MySQL ODBC é realmente a melhor triade para o programador.

@braços :?)
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Sugestão :

Coloque como fixo.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Mensagem por Marcos »

Olá a Rochinha,
Eu não consegui me Conectar no MySQL através do Front, baixe o MySQL 4.0.20a-win-noinstall e o Front 2.5 acontece que eu tinha o MySQL versão 5.0 e quando digito mysqld-nt -Install dá o seguinte erro:
060222 16:16:08 [ERROR] C:\MYSQL\BIN\MYSQLD~5.EXE unknown option '-%'

Quando digito mysqld-nt -Remove dá o mesmo erro

Acho que não está carregando o mysql, alguém pode me ajudar estou desde ontém tentando, já exclui do Regedit toda referencia ao Mysql, mas assim mesmo não dá.
Aguardo ajuda de vocês.
Marcos.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Mensagem por Marcos »

Depois de muito esforço consegui me conectar como usuário root, ao tentar fazer o exemplo do Rochinha dá o seguinte erro:

MySQL-Error:
Connection Failed:
1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL Client

Alguém me ajude!
Marcos.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Este erro ocorre quando se usa o MySQL 5, aconteceu comigo ontem a noite, inclusive quando tentava me conectar pelo MySQL-Front.

No meu caso arranquei do registro os vinculos aos servicos do MySQL, desinstalei-os e instalei novamente o MySQL 4.

E porque este erro acontece?

A libmysql.dll e libmysql.lib devem ser atualizadas para a versão do MySQL que vc vai usar.

Se voce for usar o MySQL 4 jogue libmysql.dll no diretório do MySQL-Front e de seu aplicativo e libmysql.lib dentro do diretório LIB do seu Harbour.

Se voce for usar o MySQL 5 faça o mesmo, pois o erro acontecia por tentar usar o MySQL 5 sendo chamado pelas funções da versão 4, ou vice-versa.

Verifique no tutorial em relação quais as chaves de registro que trabalham com o MySQL.

Geralmente estão em:

LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

@braços :?)
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Mensagem por Marcos »

Deixo aqui minha desistência de usar Mysql, depois de muito batalhar e tentar não consegui, o amigo Rochinha me ajudou bastante, mas mesmo assim não consegui nada, o máximo que consegui foi conectar no Mysql com Front através do usuário root só isto.
Seguindo sua dica Rochinha passei a DLL fiz tudo certinho mas nada, acho que o correto seria eu formatar e reinstalar o Windows 98, porque como vc mesmo sugeriu no registro do Windows não ficava nenhum vínculo com Mysql, mas mesmo assim não carregava.
Desisto!!!
Obrigado pela Ajuda.
Marcos.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Eu também quebrei a cabeça para tirar o MySQL e coloca-lo para rodar novamente, mas foi tudo culpa da minha vontade de colocar o MySQL 5, ele sim me ferrou.

Faça assim:

Entre no registro e pesquise sobre MySQL tanto no LOCALMACHINE\SERVICES quanto no LOCALUSER\SERVICES e arranque tudo sobre o MySQL.

Apague qualquer vestigio do MY.INI em sua maquina.
Apague os diretórios MYSQL existentes em sua maquina.

Eu me dei bem da seguinte forma:

Cansei de tentar subir o MySQL 4 e o MySQL 5 instalei o MySQL 3, este sim subiu e ai joguei tudo do MySQL 4 sobre o diretório onde instalei o 3.

Voce não precisa re-instalar o seu Windows que provavelmente esta bem configurado, eu também pensei isto, mas consegui, não era falha minha e sim da instalação.

Garanto que voce irá conseguir.

Como vc colocou, vc conseguiu conectar-se ao MYSQL-Front e não ao Mediator é o seguinte:

Como vc usa o Win98 acesse o MEDIATOR.EXE, crie as configurações conforme o tutorial e deixe-o minimizado.

Estando os serviços MySQL ativos e Mediator voce conseguira a conecção.

Tenho o Virtual PC instalado em minha maquina e farei os testes do tutorial no mesmo para saber se existe incompatibilidades e retorno.

@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Fiz os testes no Win98 e avaliei:

O MySQL insta o serviço e roda normalmente.
O MySQL-Front acessa normalmente a base de dados do MySQL.
O MySQL ODBC conecta-se afinadamente com o usuario pdvmaster e database pdv2006.
Mas o servico Mediator é incompativel com o serviço Win32 do Win98.

Concluo portanto que não será realmente possivel executá-lo neste sistema operacional.

A melhor pedida de atualização de seu sistema seria o Win2000 ou Win2003, ambos são potentes e muitas vezes mais leve que o XPesado.

Se voce tiver espaço em seu hd instale o Win2000 em outro diretório pois o boot irá permitir acessar os dois sistemas operacionais. E voce poderá usa-lo alternadamente até que tenha plena segurança.

@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Olá Rochinha,

Segui todos os passos que vc listou, tendo tudo funcionado direitinho, a não ser...

no último passo, no teste de conecção com o hrbtest.exe, onde era pra aparecer a mensagem: Conected to Mediator server... aparece o erro:

Error SRV/1401 Server Error ([MySQL][ODBC 3.51
Driver][mysqld-4.0.20a-nt]Access denied for user:
'pdvmaster@localhost' to database 'pdv2006') : MedLogErr
Quit


O que eu faço agora????


Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

As senhas e usuarios são case-sensitive ou seja, se em algum momento voce definiu uma destas informacoes totalmente em maiusculas ou miniusculas ao se conectar devera usar o mesmo metodo.

Veja que no tutorial os nomes e senhas foram colocados em minusculas. Verifique as senhas e usuarios e se for necessarios refaça o tutorial colocando tudo em minusculas mesmo que encontre algo em maiusculas.

Valeu?

@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Lopes
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 12 Dez 2005 16:27

Mensagem por Lopes »

Depois de quebrar a cabeça um pouco consegui fazer tudo funcionar direitinho aqui. :))
Muito obrigado Rochinha e Dudu_XBase pelas dias postadas aqui, sem elas acho que não teria conseguido :*


Fiz um programa que pega as tabelas que uso em meu sistema e as inclui no MySQl, depois adiciona os índices e por fim adiciona os registros (um total de 290 tabelas e quase 4000 campos nessas tabelas juntas)

OBS: Rochinha, usei em meu programinha de importação aquela função MEDISTABLE do Mediator e ela funcionou normal. Antes ela dava problemas porque embora o MEDLOGIN não desse retorno menor que zero o sistema não considerava que eu estava conectado ao MySQL.

Outra coisa, notei que ao criar os índices usando o INDEX ON no MySQL ele cria automaticamente campos na tabela para as chaves de índice complexas (aquelas que tem CAMPO1+CAMPO2+...) e isso me deixou com algumas dúvidas:
- Isso é normal para o MySQL ou será que fiz algo errado?
- Terei problemas com minhas rotinas ao tentar selecionar índices diferentes?
- Terei que fazer as rotinas de gravação de dados gravar esses campos novos referente aos índices ou será que o MySQL fará isso automaticamente.


Bem, estarei fazendo alguns testes no sistema em si nos próximos dias e qquer coisa postarei aqui para esclarecer dúvidas ou informar se deu tudo certo (estou torcendo pra dar tudo certo hehehe)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem por marcos.gurupi »

Caro janio qual foi o sistema operacional q vc conseguio instalar? Pela informação do rochinha o win98 n serah possivel fazer a instalação e esse eh o meu caso, mas gostaria de saber c vc conseguio com o win2000... ou no win98. Valew

Marcos Roberto.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

marcos.gurupi escreveu:Caro janio qual foi o sistema operacional q vc conseguio instalar?Marcos Roberto.
Amigo,

Estou tentando no WinXP. Não deu pra eu ver ainda se o erro que aconteceu se deu pelo motivo que o Rochinha mencionou... mas vou ver isso esse final de semana...

Agora, seria legal se alguém com mais experiência com SQL desse mais algumas explicações sobre algumas coisas que, eu pelo menos, não entendi direito ainda:

1-) Pra que serve o ODBC?
2-) O MySql front é útil em que?
3-) No caso, pra quem usa o sistema em rede, esse procedimento postado aqui é somente para ser feito no SERVIDOR?
4-) Os comandos SELECT, INDEX, DBSETORDER(),...,..., continuam funcionando do mesmo jeito?
5-) Pra quem usa o índice CDX, o que muda nos PRG´s ??
6-) A base de dados continua *.DBF e *.CDX?
7-) Quem usa rede mista (Servidor windows 2003 server, estações win98, winXP) terá algum problema?

Um abraço,

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Responder