Página 1 de 1
Sincronizar banco de dados MySQL na WEB com DBFCDX
Enviado: 10 Abr 2008 11:43
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
Enviado: 10 Abr 2008 12:08
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
Enviado: 10 Abr 2008 13:17
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?
Enviado: 10 Abr 2008 14:21
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
Enviado: 12 Abr 2008 15:36
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.
Enviado: 12 Abr 2008 18:08
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
Enviado: 12 Abr 2008 19:15
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?
Enviado: 12 Abr 2008 19:18
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().
ADO é pradrão no XP?
Enviado: 21 Abr 2008 16:09
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
Enviado: 22 Abr 2008 13:01
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
Enviado: 26 Abr 2008 12:06
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.