MySQL com lib nativa xharbour(contrib). Alguém utiliza no L?
Moderador: Moderadores
MySQL com lib nativa xharbour(contrib). Alguém utiliza no L?
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
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
- momente
- Usuário Nível 3

- Mensagens: 496
- Registrado em: 03 Mar 2005 11:53
- Localização: São Carlos-SP
- Contato:
Reforço a dúvida do amigo,
não consegui gerar a lib nativa do xharbour com mysql
:?
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
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
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
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
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
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
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 ?
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
MySQL c/ SQLRDD
HwGui + GTWVG
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
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.
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.
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
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
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.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Gente Obrigado a Todos....que nem diria o JACK vamos por parte:
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:
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
É 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:vailton:
Exatamente quais sao os problemas encontrados?
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
Marcelo:
SIMA lib foi gerada sem problema?
SIMVocê linkou a mesma ao seu aplicativo?
Jah estou usando assim.Experimente colocar a libmysql.dll no mesmo diretório em que está o seu aplicativo.
Tche, desculpa mas descordo de vc.....toh compilando com a versão 5.0.37 e usando o MYSQL 4.0.20a....Outra coisa, lib compilada com uma versão do mysql não funciona com o mysql de outtra versão.
Toh fazendo tudo no windows tb.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.
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
xHarbour.org + Hwgui + PostgreSql
-
enfosoft
- Usuário Nível 1

- Mensagens: 25
- Registrado em: 17 Mai 2007 08:15
- Localização: Rio Grande do sul
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.
/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.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Tche, eu não uso Linux......mas para vc poder usar o MYSQL local...tem que ter ele instalado...Eu não tenho o mysql instalado nesta maquina linux. Me parece ser problema de path. Mas Não sei como corrigir isso.
Vc jah usa o MYSQL com Windows ?
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql