Sincronizar banco de dados MySQL na WEB com DBFCDX

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Sincronizar banco de dados MySQL na WEB com DBFCDX

Mensagem por Luciano Bonfim »

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

Mensagem por MARCELOG »

Olá Amiguinho, tem sim.

Código: Selecionar todos

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 do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

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
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Mensagem por rodrmigu »

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 do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

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 do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

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 do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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:

Código: Selecionar todos

//#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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
dotNET-man
Usuário Nível 1
Usuário Nível 1
Mensagens: 20
Registrado em: 05 Jan 2008 19:15
Localização: SC

ADO é pradrão no XP?

Mensagem por dotNET-man »

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
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

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.
https://pctoledo.org/forum/viewto ... 72&start=0
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder