MySQL com lib nativa xharbour(contrib). Alguém utiliza no L?

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

Moderador: Moderadores

náufel
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 28 Nov 2005 16:55

MySQL com lib nativa xharbour(contrib). Alguém utiliza no L?

Mensagem por náufel »

Alguém utiliza a lib nativa para MySQL encontrada no contrib do xharbour, no Linux ?

Tenho experiência em Linux, MySQL e xBase.
Uso o FlagShip, sem problemas.
Estou testando o xharbour mas ainda não saí do outro lado com o MySQL.

Preciso de ajuda para compilar e linkar a lib nativa.

Obrigado.

Fernando
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Reforço a dúvida do amigo,

não consegui gerar a lib nativa do xharbour com mysql

:?
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Dei o ponta pé inicial no uso da MYSQL da CONTRIB......não esta facil..mas pra quem quiser colaborar e dar umas dicas....sinta-se a vontade....

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
vailton
Colaborador
Colaborador
Mensagens: 390
Registrado em: 17 Nov 2005 19:08
Localização: Brasil
Contato:

Mensagem por vailton »

Exatamente quais sao os problemas encontrados?
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Baixe a versão do mysql com a qual pretende trabalhar.
Faça a instalação da mesma de forma completa, isso vai criar a pasta include, que contém os arquivos com extensão .h .
Depois, baixe o pacote de contribuição do xharbour que contém a pasta e arquvos para gerar a mysqllib.lib.
Copie todos os arquivos com extensão .h da pasta include do mysql instalado, para a pasta da contrib do mysql.
Execute o arquivo make_b32.bat .
Se tudo está certo, a lib será gerada.
Depois, copie a libmysql.dll que está na pasta include (ou bin) da instalação do mysql para a pasta da contrib do mysql.
Execute implib libmysql.dll libmysql.lib
Pronto.
Posso ter informado algo errado, por via das dúvidas, consulte o arquivo readme na pasta da contrib do mysql.
Tá em inglês, mas dá prá entender tranquilo.

MarceloG
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Já havia feito exatamente como o amigo MarceloG mencionou agora, porém ao iniciar o aplicativo, ao tentar abrir uma tabela, o Windows retornava um erro. "´aplicativo´ gerou um erro e precisa ser fechado..."
Só consegui acesso as tabelas do MySql usando o Mediator.
Finalizando, com a lib nativa do contrib não deu.
Caso alguem tenha alguma ideia ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

A lib foi gerada sem problema?
Você linkou a mesma ao seu aplicativo?
Experimente colocar a libmysql.dll no mesmo diretório em que está o seu aplicativo.
Outra coisa, lib compilada com uma versão do mysql não funciona com o mysql de outtra versão.

Por favor, retorne.

MarceloG

Ps: em linux eu não sei como funciona. As dicas acima referem-se ao windows. Mas acho que só vai mudar o compilador C.
Avatar do usuário
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Mensagem por RamonXHB »

Como vc está abrindo as tabelas ???
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

No MySql, você não abre as tabelas, simplesmente as usa.

Você faz a conexão com o banco de dados através de um usuário válido com acesso ao mesmo (banco de dados).

A instalação padrão cria o usuário "root", com acesso local ("localhost") a todos os bancos de dados, ou seja, ele tem acesso a quaisquer bancos de dados existentes e criados pelos MySql, contudo só através da máquina onde o MySql está instalado.

Normalmente, até por questão de segurança, na instalação é solicitada uma senha de acesso para esse usuário "root".

Então, se a lib foi corretamente gerada as instrução abaixo tem que funcionar, no mínimo, localmente.

...
oConexao := TMYSQLSERVER():NEW("localhost","root",suasenhadomysql)

if oConexao:NETERR()
alert("Faiou! Fazer o quê né!")
return
endif

// vamos descrever a estrutura da tabela user do banco de dados de nome "mysql", que é padrão.

oQuery:=oConexao:QUERY("describe mysql.user")

if oQuery:NETERR()
alert("Faiou! Fazer o quê né!")
return
endif

? "Estrutura da tabela USER do mysql"
for i:=1 to oQuery:LASTREC()
oRow:=oQuery:GETROW(i)
? oRow:FIELDGET(1)+" "+oRow:FIELDGET(2)
next i

MarceloG
Editado pela última vez por MARCELOG em 30 Mai 2007 08:35, em um total de 2 vezes.
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Desculpe Ramon, respondi sua indagação achando que era do autor do post.

MarceloG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Gente Obrigado a Todos....que nem diria o JACK vamos por parte:
vailton:
Exatamente quais sao os problemas encontrados?
É o seguinte primeiro devo agradecer em especial a vossa senhoria por toda sua atenção em relação ao SQLLIB ...Bom, eu tenho um cliente que tem um sistema ON-LINE de pedidos...toh fazendo a seguinte situação abaixo pela CLASSE TMYSQL:

Código: Selecionar todos

FUNC BAIXAPED
   local oQuery
   local oServer
   local oRow

   oServer := TMySQLServer():New("localhost","root","123456")
   if oServer:NetErr()
      MSGINFO("Por Favor Verifique sua Conexão com a Internet")
      return
   else
      oServer:SelectDB("dados")
      if oServer:NetErr()
         MSGINFO("Não achou a base de DADOS On-line")
         return
      endif
   endif

   oQuery:=oServer:Query("select * from pedidos")  // 
   if oQuery:neterr()
      MSGINFO("Não acgou o banco PEDIDOS")
      USE TEMP.DBF EXCL
      aDbfStruct := TEMP->(dbStruct())
      oServer:CreateTable('pedidos', aDbfStruct) // cria se acaso não acha
      SELE TEMP
      USE
   endif

   USE TEMP.DBF EXCL
   ZAP

   for i:=1 to oQuery:lastrec()
   vNUM=0
   oRow:=oQuery:getrow(i)
   dbappend()
   for e:=1 to 78
       vNUM=vNUM+1
       fieldput(vNUM,oRow:fieldget(vNUM))
   next e
   dbcommit()
   next i

   // antes de eu seguir tenho apagar todos os registros por ex: ZAP...e não sei fazer isso
   oQuery:Destroy()
   oServer:Destroy()

   DBCLOSEALL()

   SELE 1
   USE TEMP ALIAS TEMP EXCL
    .......daqui que pra frente é como tirar doce de criança.....heheh
Obs: Jah toh gerando minha LIB da CONTRIB perfeitamente.....toh compilando a LIB com a ultima versão do MYSQL e toh usando o MYSQL 4.0.20a...que é uma versão não instalavel...e funciona que é uma beleza...

Marcelo:
A lib foi gerada sem problema?
SIM
Você linkou a mesma ao seu aplicativo?
SIM
Experimente colocar a libmysql.dll no mesmo diretório em que está o seu aplicativo.
Jah estou usando assim.
Outra coisa, lib compilada com uma versão do mysql não funciona com o mysql de outtra versão.
Tche, desculpa mas descordo de vc.....toh compilando com a versão 5.0.37 e usando o MYSQL 4.0.20a....
Ps: em linux eu não sei como funciona. As dicas acima referem-se ao windows. Mas acho que só vai mudar o compilador C.
Toh fazendo tudo no windows tb.

Obs: fiz uns teste com o Mediator me pareceu mais devagar que a lib da contrib ....e outro detalhe...tem que deixar o tal SERVER do Mediator ativo para poder usar o mesmo....quando for algo de uso do MYSQL local não tem problema...mas como meu casso vai ser ON-LINE....ai como vou dizer pro PROVEDOR rodar o SERVER do Mediator lah ? ai ruim neh...

Tudo que for dica é bem vinda

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
enfosoft
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 17 Mai 2007 08:15
Localização: Rio Grande do sul

Mensagem por enfosoft »

Consegui compilar a lib, mas na hora de lincar com o meu prgs esta aparecendo esta mensagem.

/usr/lib/gcc/i586-suse-linux/4.1.0/../../../../i586-suse-linux/bin/ld: cannot find -lmysqlclient

Eu não tenho o mysql instalado nesta maquina linux. Me parece ser problema de path. Mas Não sei como corrigir isso.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Eu não tenho o mysql instalado nesta maquina linux. Me parece ser problema de path. Mas Não sei como corrigir isso.
Tche, eu não uso Linux......mas para vc poder usar o MYSQL local...tem que ter ele instalado...
Vc jah usa o MYSQL com Windows ?

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
enfosoft
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 17 Mai 2007 08:15
Localização: Rio Grande do sul

Mensagem por enfosoft »

Estou usando uma versao antiga. ainda quando vinha compilado acho q a versao 0.99.0 Funciona legal.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Tche, Atualiza a CONTRIB e compila....que não tem erro....pelo menos aqui....como eu disse eu uso o MYSQL da contrib no windows e toh usando a versão 5.037 do MYSQL.....outra coisa até onde eu sei vc não pode usar uma LIB de versão diferente no xharbour...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder