 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
yuri17ms Novato

Registrado: Quinta-Feira, 17 de Janeiro de 2013 Mensagens: 4
|
Enviada: Dom Mai 26, 2013 1:23 pm Assunto: Alterar firebird para MySQL |
|
|
Boa tarde pessoal, eu possuo um sistema de vendas, so que o mesmo possui um sincronizador que sincroniza com minha base de dados online, via XML-RPC entre o delphi e uma API em php, o mesmo possui um banco de dados local em firebird e uma conexão direta com o meu mysql do servidor online para puxar algumas informações, eu queria tirar o firebird e deixar ele conectado diretamente com o MySQL, é dificil?
segue o arquivo que conecta:
unit uDmConexao;
interface
uses
SysUtils, Classes, WideStrings, DBXDynalink, DB, SqlExpr, uUtil, uFuncoes, FMTBcd, Provider, DBClient,
uDmBase, DBXMySql;
type
TDmConexao = class(TDmBase)
SQLConnection: TSQLConnection;
CDS_Usuario: TClientDataSet;
SQL_Usuario: TSQLQuery;
DSP_Usuario: TDataSetProvider;
SQLConnectionMysql: TSQLConnection;
private
function TestaConexao: Boolean;
{ Private declarations }
public
constructor Create(const pConexao: TSQLConnection); virtual;
procedure ConectaMysql;
destructor Destroy; override;
end;
implementation
uses
Forms, Dialogs, Controls, WinInet, uMsgBox;
{$R *.dfm}
constructor TDmConexao.Create(const pConexao: TSQLConnection);
begin
inherited Create(nil);
with SQLConnection do
begin
Params.Values['DATABASE'] := GetPathBD;
end;
try
SQLConnection.Open;
finally
if SQLConnection.Connected then
begin
SQL_Usuario.SQLConnection := SQLConnection;
SetConection(SQLConnection);
end
else
begin
ShowMessage('Erro ao conectar a base de dados ' + #13 +
'- O Aplicativo sera finalizado.');
Application.Terminate;
end;
end;
ConectaMysql;
end;
procedure TDmConexao.ConectaMysql;
begin
if TestaConexao then
begin
if GetMysqlHost <> EmptyStr then
begin
if SQLConnectionMysql.Connected then
Exit;
with SQLConnectionMysql do
begin
Params.Values['DriverName'] := 'MySQL';
Params.Values['HostName'] := GetMysqlHost; // '187.33.0.74';
Params.Values['Database'] := GetMysqlBanco; // 'ingresso';
Params.Values['User_Name'] := GetMySqlUsuario; // 'root';
Params.Values['Password'] := GetMysqlSenha; // 'myioa';
Params.Values['ServerCharSet'] := '';
Params.Values['BlobSize'] := '-1';
Params.Values['ErrorResourceFile'] := '0000';
Params.Values['LocaleCode'] := '';
Params.Values['Compressed'] := 'False';
Params.Values['Encrypted'] := 'False';
//Params.Values['VendorLib'] := ExtractFilePath(Application.ExeName) + 'libmysql.dll';
//Params.Values['LibraryName'] := ExtractFilePath(Application.ExeName) + 'dbexpmysql.dll';
end;
SQLConnectionMysql.Open;
end;
end;
end;
destructor TDmConexao.Destroy;
begin
SQLConnection.Close;
inherited;
end;
function TDmConexao.TestaConexao: Boolean;
begin
Result := InternetCheckConnection('http://www.yahoo.com/', 1, 0);
end;
end. |
|
| Voltar ao Topo |
|
 |
marcosbaixista Profissional

Registrado: Quinta-Feira, 18 de Março de 2010 Mensagens: 594 Localização: Maringá/PR
|
Enviada: Dom Mai 26, 2013 3:22 pm Assunto: |
|
|
Deixa eu ver se entendi.
A conexão no servidor é MySQL? Você tem o Firebird na sua máquina local e usa o MySQL na WEB, é isso?
Se for isso, se pode usar o mesmo componente de conexão para se conectar na WEB, desde que o servidor WEB permita a conexão externa de dados.
No caso ao invés de indicar um banco local, você aponta para o IP do servidor WEB onde o banco está hospedado. |
|
| Voltar ao Topo |
|
 |
yuri17ms Novato

Registrado: Quinta-Feira, 17 de Janeiro de 2013 Mensagens: 4
|
Enviada: Dom Mai 26, 2013 6:10 pm Assunto: |
|
|
| Então vou te explicar, esse software é para ingressos, ele possui 3 tipos de conexão, a primeira ele se conecta via API para importação e exportação de dados atraves do XML-RPC com um servidor web em php/mysql, a segunda conexao é com o firebird, esse ai é o banco de dados local onde fica armazenado os registros para depois exportar ou importar dados, a terceira conexao é com o mysql direto pois tem um form que lista todos os ingressos, oque eu queria fazer, é ao inves de inserir os dados no firebird ele inserir diretamente ao mysql. |
|
| Voltar ao Topo |
|
 |
marcosbaixista Profissional

Registrado: Quinta-Feira, 18 de Março de 2010 Mensagens: 594 Localização: Maringá/PR
|
Enviada: Dom Mai 26, 2013 10:39 pm Assunto: |
|
|
Então você quer eliminar uma conexão, e ao invés de 3 ficar apenas 2 conexões certo.
Se pode usar o próprio componente de conexão ai que ta usando para se conectar remotamente nesse banco MySQL. Ao invés de apontar para o servidor local, você aponta para o IP do servidor que ta hospedado o MySQL.
Tenta mudar no SQLConnection que você ta usando os parametros e testa pra ver se aparece algum erro. Se aparecer erros vai postando ai que te ajudo ok. |
|
| Voltar ao Topo |
|
 |
yuri17ms Novato

Registrado: Quinta-Feira, 17 de Janeiro de 2013 Mensagens: 4
|
Enviada: Seg Mai 27, 2013 12:30 am Assunto: |
|
|
| eu quero elimitar 2 conexões, XML-RPC e o firebird, deixando apenas o MySQL direto, eu nao entendo quase nada de delphi, entendo alguma coisa de VB e olha la, pra mim ta dificil pq so programo PHP |
|
| Voltar ao Topo |
|
 |
marcosbaixista Profissional

Registrado: Quinta-Feira, 18 de Março de 2010 Mensagens: 594 Localização: Maringá/PR
|
Enviada: Seg Mai 27, 2013 8:28 am Assunto: |
|
|
| yuri17ms escreveu: | | eu quero elimitar 2 conexões, XML-RPC e o firebird, deixando apenas o MySQL direto, eu nao entendo quase nada de delphi, entendo alguma coisa de VB e olha la, pra mim ta dificil pq so programo PHP |
Bom dia Yuri.
Bom, se pretende eliminar as duas conexões, segue da mesma forma que falei acima, conectar o SQLConnection diretamente ao banco da hospedagem. Se sua hospedagem, ou seja, onde o banco MySQL está permitir acesso externo, dá pra fazer diretamente no componente, se não permitir, as únicas possibilidades é utilizar o XML-RPC ou criar um WebService na Hospedagem para se comunicar.
Caso a hospedagem aceita conexão externa, tem dois caminhos ai tbm, você pode utilizar a conexão direta no componente, ou utilizar DataSnap do Delphi, que é mais recomendado para aplicações maiores e também se deseja disponibilizar essa conexão a outros dispositivos.
Para se conectar diretamente ao componente, leia esse tópico.
http://www.devmedia.com.br/conexao-ao-mysql-5-com-delphi-7-pela-dbexpress/6954 |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|