Retornar a Conexão do banco de Dados
Moderador: Moderadores
Retornar a Conexão do banco de Dados
Amigos...
Pensei na possibilidade do firewall. A princípio desativei para testar mas ficou na mesma. Esse banco local do Mysql está funcionando normalmente para conexões via PHP e via ODBC pelo ASP, em ambiente web.
A impressão mesmo é que algo está bloqueando o acesso... #-)
Pensei na possibilidade do firewall. A princípio desativei para testar mas ficou na mesma. Esse banco local do Mysql está funcionando normalmente para conexões via PHP e via ODBC pelo ASP, em ambiente web.
A impressão mesmo é que algo está bloqueando o acesso... #-)
Retornar a Conexão do banco de Dados
Amigo, vc disse que testou o firewall e disse que por ODBC acessa normalmente, mas o site está na mesma máquina do servidor de banco de dados ?
Se a resposta for sim, então vc tem que fazer o teste acessando de outra máquina para testar se o servidor de banco de dados está disponível. Use algum cliente de SQL conhecido como o HeidiSQL.
Vou dar outro chute : Pode ser também que a sua aplicação tenha sido compilada em 32 bits e o driver ODBC é de 64 bits.
Se a resposta for sim, então vc tem que fazer o teste acessando de outra máquina para testar se o servidor de banco de dados está disponível. Use algum cliente de SQL conhecido como o HeidiSQL.
Vou dar outro chute : Pode ser também que a sua aplicação tenha sido compilada em 32 bits e o driver ODBC é de 64 bits.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Retornar a Conexão do banco de Dados
Tem essa meleca também: O Windows 64 bits se comporta como 2 Windows diferentes, 32 e 64 bits.
Nem sempre o que instala pra um fica disponível para o outro.
Até por isso tem duas pastas "arquivos de programas", pasta "system32" pra 64 bits e "syswow64" pra 32 bits (é isso mesmo, parece invertido), etc.
A Microsoft sempre gostou de complicar.
É o jeito dela bloquear, sem dizer que bloqueou.
Nem sempre o que instala pra um fica disponível para o outro.
Até por isso tem duas pastas "arquivos de programas", pasta "system32" pra 64 bits e "syswow64" pra 32 bits (é isso mesmo, parece invertido), etc.
A Microsoft sempre gostou de complicar.
É o jeito dela bloquear, sem dizer que bloqueou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Retornar a Conexão do banco de Dados
Outra coisa, seria interessante vc testar o acesso nativo do harbour aos banco de dados, assim vc não fica dependendo de outras libs. O Harbour possui classes que possibilitam acesso nativo ao PostgreSQL e ao MySQL.
Dê uma olhada nos exemplos que tem no contrib nas pastas hbpgsql e hbmysql. Lá tá muito bem detalhado. E a unica coisa que vc irá precisar para distribuir a sua aplicação são as dlls na mesma pasta do sistema, assim vc não precisa configurar ODBC ou se certificar de que a máquina cliente terá os drivers de ODBC instalados. O ODBC, na minha opinião, tem esse ponto negativo. O ponto positivo do ODBC é vc poder acessar a vários banco de dados sem mudanças significativas no seu código.
Eu, como não tenho planos de usar outro banco além do MySQL e o PostgreSQL acesso nativamente mesmo, isso até me possibilita migrar para LINUX ou, quem sabe, no futuro criar aplicações para Android. No ODBC vc fica meio preso ao windows além de ter que configurar as estações manualmente.
Caso vc se interesse, as dlls que vc irá precisar são (32 bits caso sua app seja 32 bits) :
MySQL -> libmysql.dll
PostgreSQL -> intl.dll, libeay32.dll e libpq.dll
Se vc se interessar tem mais documentação aqui :
https://www.youtube.com/user/hmglights
Dê uma olhada nos exemplos que tem no contrib nas pastas hbpgsql e hbmysql. Lá tá muito bem detalhado. E a unica coisa que vc irá precisar para distribuir a sua aplicação são as dlls na mesma pasta do sistema, assim vc não precisa configurar ODBC ou se certificar de que a máquina cliente terá os drivers de ODBC instalados. O ODBC, na minha opinião, tem esse ponto negativo. O ponto positivo do ODBC é vc poder acessar a vários banco de dados sem mudanças significativas no seu código.
Eu, como não tenho planos de usar outro banco além do MySQL e o PostgreSQL acesso nativamente mesmo, isso até me possibilita migrar para LINUX ou, quem sabe, no futuro criar aplicações para Android. No ODBC vc fica meio preso ao windows além de ter que configurar as estações manualmente.
Caso vc se interesse, as dlls que vc irá precisar são (32 bits caso sua app seja 32 bits) :
MySQL -> libmysql.dll
PostgreSQL -> intl.dll, libeay32.dll e libpq.dll
Se vc se interessar tem mais documentação aqui :
https://www.youtube.com/user/hmglights
Retornar a Conexão do banco de Dados
Amigos Vlademiro e José
Minha aplicação é 32 bits. Vlademiro, eu tenho essa DLL e fiz alguns testes. Carreguei-a e tentei alguns comandos, mas por conta própria, já que não tinha documentação sobre ela.
Mas ontem encontrei uns materiais aqui no meu PC sobre ODBC. Aventurei e eis que EURECA! Funcionou perfeitamente!
Compilei, usando apenas as libs mysql.lib e odbc.lib, mais nada. O código simples segue abaixo, caso alguém precise ou tenha interesse. Desde já agradeço a vocês.
)
Minha aplicação é 32 bits. Vlademiro, eu tenho essa DLL e fiz alguns testes. Carreguei-a e tentei alguns comandos, mas por conta própria, já que não tinha documentação sobre ela.
Mas ontem encontrei uns materiais aqui no meu PC sobre ODBC. Aventurei e eis que EURECA! Funcionou perfeitamente!
Compilei, usando apenas as libs mysql.lib e odbc.lib, mais nada. O código simples segue abaixo, caso alguém precise ou tenha interesse. Desde já agradeço a vocês.
Código: Selecionar todos
Function main()
#include "mysql.ch"
#include 'adodb.ch'
CNN:=CreateObject("ADODB.Connection")
CNN:Open("DRIVER={MySQL ODBC 3.51 Driver};" + ;
"server=localhost" + ;
";database=nome_do_banco_de_dados" + ;
";uid=nome_do_usuario" + ;
";pwd=senha_do_banco")
** EXEMPLO DE USO COM O COMANDO INSERT
CNOME:="Fulano de Tal"
CEMAIL:="fulano@detal.com"
oCursor := CreateObject("ADODB.Recordset")
cSql := "insert into nome_da_tabela(nome_usuario,email_usuario) VALUES ('"+CNOME+"','"+CEMAIL+""')"
CNN:Execute(cSQL)
*** EXEMPLO DE USO COM O COMANDO SELECT
oCursor:=CreateObject("ADODB.Recordset")
oCursor:Open("select * from nome_da_tabela where nome_usuario='"+cnome+"'",CNN,2,3)
if oCursor:Eof()
Return
endif
cnomeX := oCursor:Fields['email_usuario']:value
************************
@ 10,01 say cnomeX
INKEY(0)
Retornar a Conexão do banco de Dados
Código: Selecionar todos
Function main()
#include "mysql.ch"
#include 'adodb.ch'
CNN:=CreateObject("ADODB.Connection")
CNN:Open("DRIVER={MySQL ODBC 3.51 Driver};" + ;
"server=localhost" + ;
";database=nome_do_banco_de_dados" + ;
";uid=nome_do_usuario" + ;
";pwd=senha_do_banco")
*** EXEMPLO DE USO COM O COMANDO SELECT
oCursor:=CreateObject("ADODB.Recordset")
oCursor:Open("select * from nome_da_tabela where nome_usuario='"+cnome+"'",CNN,2,3)
if oCursor:Eof()
Return
endif
cnomeX := oCursor:Fields['email_usuario']:value
dbedit(????)
Em um exemplo como este, é possível utilizar o DBEDIT para listar os dados da tabela??
Retornar a Conexão do banco de Dados
Direto no Dbedit, não.
Você vai ter que criar uma tabela temporária (dbf)
Você vai ter que criar uma tabela temporária (dbf)
►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)
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)
Retornar a Conexão do banco de Dados
Hum, imaginei asimoes
E como eu poderia usar algo, do tipo COPY TO, para criar a tabela temporária?
Caso não fosse usar o Dbedit, o que poderia usar no lugar?
E como eu poderia usar algo, do tipo COPY TO, para criar a tabela temporária?
Caso não fosse usar o Dbedit, o que poderia usar no lugar?
Retornar a Conexão do banco de Dados
Exemplo de tabela temporária:
No final, eliminar a tabela:
DbDrop("mem:etiquetas")
Antes:
Tem que linkar : hbmemio.hbc
E fazer o request
REQUEST HB_MEMIO
Código: Selecionar todos
aStru:={}
aAdd(aStru, {"C1", "C", 57, 0})
aAdd(aStru, {"C2", "C", 57, 0})
aAdd(aStru, {"C3", "C", 57, 0})
DbCreate("mem:etiquetas", aStru, "DBFCDX", .T., "etiquetas")
DbDrop("mem:etiquetas")
Antes:
Tem que linkar : hbmemio.hbc
E fazer o request
REQUEST HB_MEMIO
►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)
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)
Retornar a Conexão do banco de Dados
Se não for usar dbf, pode usar Achoice, depende muito da quantidade de registros que vai retornar da consulta.
►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)
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)
Retornar a Conexão do banco de Dados
Olá
Criei um metodozinho aqui que deu certo. Não é o ideal, mas no momento poderá atender minha necessidade de migração para o Mysql. No futuro (a media que o tempo me permitir) converterei esse sistema para PHP. Mas pra manter a funcionalidade e ir fazendo aos poucos, vou primeiro jogar no Mysql. Segue abaixo o que fiz:
Obrigado pela força!
)
Criei um metodozinho aqui que deu certo. Não é o ideal, mas no momento poderá atender minha necessidade de migração para o Mysql. No futuro (a media que o tempo me permitir) converterei esse sistema para PHP. Mas pra manter a funcionalidade e ir fazendo aos poucos, vou primeiro jogar no Mysql. Segue abaixo o que fiz:
Código: Selecionar todos
oCursor:=CreateObject("ADODB.Recordset")
ocursor:Open("select * from usuarios",CNN,2,3)
Private astru
astru:= {{"email", "C", 30, 0},{"nome", "C", 30, 0}}
dbcreate("temp.dbf", astru)
use temp
DO WHILE .NOT. ocursor:Eof()
append blank
replace email with ocursor:Fields( "EMAIL_USUARIO" ):Value
replace nome with ocursor:Fields( "NOME_USUARIO" ):Value
ocursor:MoveNext()
ENDDO
close data
ocursor:Close()
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Retornar a Conexão do banco de Dados
Depende como configurou a conexão.
Código: Selecionar todos
LOCAL oRs, aStru
oRs := cnn:Execute( "select * from usuarios" )
aStru := { ;
{ "email", "C", 30, 0 }, ;
{ "nome", "C", 30, 0 } }
dbcreate( "temp", astru )
USE temp
DO WHILE .NOT. oRs:Eof()
APPEND BLANK
REPLACE ;
email WITH oRs:Fields( "EMAIL_USUARIO" ):Value, ;
nome WITH oRs:Fields( "NOME_USUARIO" ):Value
oRs:MoveNext()
ENDDO
USE
oRs:Close()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/


