Página 1 de 2

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

Enviado: 27 Set 2006 14:44
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

Enviado: 27 Set 2006 15:16
por momente
Reforço a dúvida do amigo,

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

:?

Enviado: 28 Mai 2007 22:45
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

Enviado: 29 Mai 2007 06:15
por vailton
Exatamente quais sao os problemas encontrados?

Enviado: 29 Mai 2007 12:18
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

Enviado: 29 Mai 2007 15:59
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 ?

Enviado: 29 Mai 2007 17:22
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.

Enviado: 29 Mai 2007 20:00
por RamonXHB
Como vc está abrindo as tabelas ???

Enviado: 30 Mai 2007 08:28
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

Enviado: 30 Mai 2007 08:32
por MARCELOG
Desculpe Ramon, respondi sua indagação achando que era do autor do post.

MarceloG

Enviado: 30 Mai 2007 14:04
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

Enviado: 08 Jun 2007 15:57
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.

Enviado: 08 Jun 2007 16:03
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

Enviado: 08 Jun 2007 17:41
por enfosoft
Estou usando uma versao antiga. ainda quando vinha compilado acho q a versao 0.99.0 Funciona legal.

Enviado: 08 Jun 2007 17:55
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