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.