Clipper On Line • Ver Tópico - Sincronizar banco de dados MySQL na WEB com DBFCDX

Sincronizar banco de dados MySQL na WEB com DBFCDX

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Sincronizar banco de dados MySQL na WEB com DBFCDX

Mensagempor Luciano Bonfim » 10 Abr 2008 11:43

Caros,

Tenho uma aplicaçäo em xharbour com dbfcdx e vou criar um módulo na WEB usando (ASP + MYSQL) para inputar determinadas informaçöes.

Essas informaçöes que estaräo na WEB depois tem que ser incluídas no meu sistema quando o usuário clicar numa opçäo de "sincronismo" que estará no sistema xharbour.

A minha dúvida é como posso fazer esse sincronismo?

Tem como eu de dentro da minha aplicaçäo abrir esse banco de dados MYSQL e copiar as informaçöes para o meu DBF?

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor MARCELOG » 10 Abr 2008 12:08

Olá Amiguinho, tem sim.

FUNCTION X()

LOCAL oServer, cQuery, oQuery, i

oServer:=TMYSQLSERVER():NEW(cHostName,cUserName,cPassword)

IF oServer:NETERR() // Falha na conexão com o banco de dados

   MSGSTOP(oServer:ERROR())

   oServer:DESTROY()

   RETURN

ENDIF

cQuery := 'USE MEU_BANCO'

oQuery := oServer:QUERY(cQuery)

IF oQuery:NETERR() // Falha na utilização do banco de dados

   MSGSTOP(cQuery+CRLF+;
           ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+;
           oQuery:ERROR())

   oQuery:DESTROY()

   RETURN

ENDIF

cQuery := 'SELECT * FROM MINHA_TABELA' // Como exemplo tem 3 campos

oQuery := oServer:QUERY(cQuery)

IF oQuery:NETERR() // Falha na leitura da tabela

   MSGSTOP(cQuery+CRLF+;
           ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+;
           oQuery:ERROR())

   oQuery:DESTROY()

   RETURN

ENDIF

USE MEU_DBF // Como exemplo tem 3 campos

FOR i := 1 TO oQuery:LASTREC

      DBAPPEND()
      FIELDPUT(1,oQuery:GETROW(i):FIELDGET(1))
      FIELDPUT(2,oQuery:GETROW(i):FIELDGET(2))
      FIELDPUT(3,oQuery:GETROW(i):FIELDGET(3))
      DBCOMMIT()
      DBUNLOCK()

NEXT i

RETURN


O usuário tem que ter permissão de leitura da tabela no banco de dados.

MARCELOG
Água mole em pedra dura tanto bate que até espirra!
Avatar de usuário

MARCELOG
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 546
Data de registro: 15 Mar 2005 16:54
Cidade/Estado: Divinópolis/MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Mensagempor Luciano Bonfim » 10 Abr 2008 13:17

Obrigado Marcelo,

e pra fazer o inverso, ou seja, gravar dados da minha aplicaçäo para a base de dados na WEB?
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor rodrmigu » 10 Abr 2008 14:21

Olá,

cQuery := 'UPDATE minha_tabela SET campo1 = 123, campo2 = 456 WHERE campo3 = 123456'

O resto vc pode usar o que já foi passado pra executar.:

oQuery := oServer:QUERY(cQuery)

IF oQuery:NETERR() .....

[]'s
Rodrigo
Avatar de usuário

rodrmigu
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 150
Data de registro: 27 Nov 2007 14:13
Cidade/Estado: Indaiatuba SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor rochinha » 12 Abr 2008 15:36

Amiguinho

Voce usa Harbour, ja é um começo, então de uma olhada na sessão codigo fonte, a respeito da ADOxB e veja os exemplos de como INPUTar dados numa tabela MySQL usando comandos parecidissimos com o xBase.

Quanto ao acesso remoto bastara voce colocar na string de conexão o endereço correto de acesso ao MySQL externo e pronto.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Mensagempor Luciano Bonfim » 12 Abr 2008 18:08

Caro Rochinha,

qual LIB eu devo linkar na minha aplicacao para usar ess ADOxb?

preciso linkar a mysql.lib da contrib?

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor Luciano Bonfim » 12 Abr 2008 19:15

já entendi rochinha...

criei o adoxb.prg e adoxb.ch que estäo no tópico e compilei e linkei no meu sistema.

o adoxb.ch dá um erro comentei a linha e funcinou, o meu com o adoxb.prg dá problema na linha 265, tirei a parte cometada e funcionou...

quando executo um exemplo simples dá erro: TOLEAUTO/-1

uso o xharbour 1.0.0 o que pode ser?
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor rochinha » 12 Abr 2008 19:18

Amiguinho,

Tudo que voce precisa esta disponibilizado no post, a ADOxB usa o recurso OLE do xHarbour para fazer a ponte com a API do ADO existente em sua maquina, caso não tenha, instale um Access, pois o ADO, deve ser recurso padrão nos XPs em diante, em 98 voce precisa instalar JET, DCOM, etc.

Leia o post desde o inicio e voce verá que lá consta todo o codigo, atualizado e com exemplos praticos.

Preste atenção em:
//#define _ADO_xHarbour_ // Habilite esta linha caso pretenda usar xHarbour
#ifndef _ADO_xHarbour_
        #define _ADO_Harbour_
#endif


Aqui voce habilita a compilação para xHarbour ou Harbour pois o objeto OLE é gerenciado no Harbour por TOLEAuto() e no xHarbour por CreateObject().
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

ADO é pradrão no XP?

Mensagempor dotNET-man » 21 Abr 2008 16:09

Qual opção do componente do Windows devo ativar para disponibilizar o ADO no XP?
Só consigo usar o ADO nos computadores onde instalei o .NET.
Sérgio
dotNET-man
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 05 Jan 2008 18:15
Cidade/Estado: SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor sygecom » 22 Abr 2008 13:01

Olá Sergio,
Sou meio leigo nesse negocio de ADO, mas um projeto Open que esta me ajudando a entender melhor isso tudo é o "ourXdbu" que vc encontra no SourceForge:
http://sourceforge.net/projects/ourxdbu/
E claro a LIB do Rochinha tmb. ajuda pra caramba.
http://www.pctoledo.com.br/forum/viewto ... 72&start=0
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7019
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Mensagempor rochinha » 26 Abr 2008 12:06

Amiguinho

Para ter acesso ao ADO em outros Windows sem o .NET voce deve instalar o JET da Micro$oft compativel com a versão de seu Windows.

Se o Windows for muito antigo, tipo Win98 ou ME voce deverá instalar também, aso não esteja instalado o DCOM compativel com o mesmo.

E ai é só sair pro abraço.

Se analisar o meu codigo ADO verá que não existe dificuldade de trabalhar com o mesmo em qualquer linguagem pois o acesso via OLE proporciona uma interface muito similar ao acesso via VB e/ou Delphi.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 18 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro