Página 2 de 3
Retornar a Conexão do banco de Dados
Enviado: 28 Jun 2016 13:47
por Vlademiro
Retornar a Conexão do banco de Dados
Enviado: 28 Jun 2016 14:07
por JoséQuintas
Uso DBF só pros casos de browse.
Talvez se interesse pelo ADORDD, tá em projeto separado do Harbour.
Eu não quis mexer no que já estava usando, mas a intenção dele é usar igual DBF.
Retornar a Conexão do banco de Dados
Enviado: 28 Jun 2016 15:48
por Antonio
Obrigado a todos!
Vou estudar todo esse material. Confesso que ainda estou meio confuso mas vou estudar.
Jose Quintas,
A sua simplicidade é algo admirável.
:-Y
Retornar a Conexão do banco de Dados
Enviado: 28 Jun 2016 15:59
por Vlademiro
Simplicidade é uma característica dos bons programadores, isso a gente pode perceber no Quintas. O seu código é simples e claro.
Retornar a Conexão do banco de Dados
Enviado: 28 Jun 2016 16:08
por Antonio
Ola Vlademiro,
Obrigado pelas postagens.
Eu na verdade me refiro a simplicidade como pessoa mesmo. Sem tripudiação, sem arrogância... que muito se vê no dia a dia.
Retornar a Conexão do banco de Dados
Enviado: 06 Jul 2016 16:56
por Antonio
Obrigado Quintas e a todos os colegas.
Ja consegui invocar uma função que me retorna a conexão com o banco de dados.
Através de um Record Set eu invoco uma instrução SQL na conexão retornada pela função.
Na classe, atraves de metodos manipulo os dados.
Vou aprendendo mais conforme a evolução do pequeno trabalho que irei desenvolver
Obrigado Novamente.
Retornar a Conexão do banco de Dados
Enviado: 06 Jul 2016 21:50
por JoséQuintas
Bom saber.
Só recapitulando o jeito que uso:
Recordset no uso normal
Recordset convertido pra DBF no browse, pra não ter que quebrar a cabeça com tbrowse especial pra ADO.
O meu aplicativo ainda não está 100% em ADO, então não quero perder tempo com rotina especial de tbrowse pra MySQL.
No momento, tem tabela que pode ser DBF ou MySQL, o aplicativo seleciona conforme existir MySQL instalado ou não.
Mas cansei de colocar IFs... fiz uma pausa nisso e esqueci de continuar.... rs... Mas tá rodando assim há mais de um ano.
Retornar a Conexão do banco de Dados
Enviado: 11 Jul 2016 20:23
por paulovirt
Amigos, boa noite.
Estou tentando criar um modelo de conexão do meu sistema xharbour no mysql, local mesmo. Para tanto, usei a SQLLIB, do amigo Vailton. O código segue abaixo:
#include "sqllib.ch"
#include "ord.ch"
#define CRLF CHR(13)+CHR(10)
REQUEST SQLLIB
REQUEST MySQL
FUNCTION MAIN
clear
* CONEXAO COM O BANCO DE DADOS
cConn:="Driver=MySQL;ip=localhost;usuario=root;senha=;banco=nome_do_banco"
SQL CONNECT cConn INTO nMySQL
* EXEMPLO DE COMO INSERIR DADOS
csql:= "INSERT INTO tabela(nome_usuario,email_usuario) VALUES ('FULANO DE TAL','
fulano@detal.com.br')"
sqlexecute(csql)
O problema é que o programa executa, o sistema simplesmente para de funcionar, e o Windows 7 exibe uma mensagem dizendo que "parou de funcionar". Alguém teria algum outro método? Desde já agradeço.
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 13:34
por JoséQuintas
Comunicação entre cliente/servidor é por TCP/IP, algo como uma "linha telefônica".
Ao tentar conectar com o servidor, há um limite de tempo para conseguir essa conexão - algo como o telefone chamando e esperando alguém atender.
Nesse meio tempo, se tentar mexer na janela, pode acontecer o erro que mencionou, porque o programa está travado aguardando "a ligação completar".
Há várias opções de usar Harbour com MySQL, uma delas é o ADO, que faz parte do Windows.
Cada opção tem um jeito diferente de ser usada, o ponto em comum é que todas usam uma conexão com o banco de dados.
Acho que não existe melhor ou pior opção, cada um decide pela que se sente mais confortável em usar.
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 13:43
por paulovirt
Então amigo José...
ele fica assim estático logo que é aberto. Não demora nada e já pára de responder. Se tiver algum exemplo pra me passar, algum modo que utilize e funcione, poderia me mostrar?
Já utilizo o "My" em PHP e ASP, mas no xharbour está dando esse erro. :%
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 13:55
por JoséQuintas
Já utilizo o "My" em PHP e ASP
Então talvez prefira usar igual usa no ASP, direto com ADO.
Vai ter que testar no xHarbour, porque uso Harbour.
Código: Selecionar todos
oConn := CreateObject( "ADODB.Connection" )
oConn:ConnectionString := "xxxxxx"
// configura conexão
oConn:Open()
oRs := oConn:Execute( "SELECT * FROM banco" )
DO WHILE .NOT. oRs:Eof()
oRs:MoveNext()
ENDDO
oRs:Close()
oConn:Close()
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 14:52
por paulovirt
Ele me retorna:
Error ADODB.Connection/0 S_OK: OPEN Arguments: ()
Error at ...: TOLEAUTO:OPEN(0) in module: Win32ole.prg
Callled from : MAIN(6) in module: MYSQL.PRG
O que será que está faltando??
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 15:08
por JoséQuintas
Só posso dizer da parte que conheço, que já deve saber:
- Ter o ODBC de MySQL instalado - atenção conforme versão ODBC 32 bits/64 bits em S.O. 64 bits
- Ter o servidor MySQL instalado
- Ter liberado no firewall pra acesso
- Definir a conexão de acordo com as configuração do driver/localização do banco/senhas/etc.
O que uso é isto, mas no HARBOUR (win_OleCreateObject)
Código: Selecionar todos
cnConnection:= win_OleCreateObject( "ADODB.Connection" )
cnConnection:ConnectionString := "Driver={MySQL ODBC " + iif( nVersion == 3, "3.51", "5.3 ANSI" ) + " Driver};Server=" + cServer + ";" + "Port=" + Ltrim( Str( nPort ) ) + ;
";Stmt=;Database=" + cDatabase + ";User ID=" + cUser + ";Password=" + cPassword
cnConnection:CursorLocation := AD_USE_CLIENT
cnConnection:CommandTimeOut := 200 // seconds
cnConnection:ConnectionTimeOut := 200 // seconds
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 19:15
por Vlademiro
Vc já tentou conectar usando um cliente (Tipo HeidiSQL) ? Talvez o BD não esteja habilitado para responder a conexões remotas ou pode ser o firewall bloqueando.
Retornar a Conexão do banco de Dados
Enviado: 12 Jul 2016 19:33
por JoséQuintas
Bem lembrado.
Precisa liberar acesso ao usuário e/ou root pra acesso não só ao banco de dados, mas de qualquer IP externo.
No MySQL antigo não tinha isso.
E em MySQL na internet idem, dependendo do provedor.