Arquivo Ini para caminho do banco

26/02/2013

0

Olá Pessoal estou com uma pequena Dúvida tem como criar um arquivo Ini para que meu sistema ele abra em mais de uma maquina na mesma rede ?



estou usando SqlConection, Banco de dados Firebird 2.1.


desde já obg!
Francielio Medeiros

Francielio Medeiros

Responder

Posts

26/02/2013

Luiz Menin

Claro que pode!
Você pode utilizar este código no evento BeforeConnect do SQLConnection.

  if not (FileExists(ExtractFilePath(ParamStr(0)) + 'IniConf.INI')) then
  begin
    IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
  	IniConf.WriteString('BANCO_DADOS', 'HostName', 'LocalHost');
    IniConf.WriteString('BANCO_DADOS', 'Port', '266');
  end
  else
  begin
    IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
    SQLConnection1.Params.Values['HostName'] := IniConf.ReadString('BANCO_DADOS', 'HostName', '');
    SQLConnection1.Params.Values['Port'] := IniConf.ReadString('BANCO_DADOS', 'Port', '');
  end;
Responder

26/02/2013

Luiz Menin

Ah, não esqueça de inserir no Uses a unit 'IniFiles' e declarar a variável:

var
IniConf : TIniFile;
Responder

26/02/2013

Francielio Medeiros

Amigo meu codigo ficou assim


unit U_DataModulo;

interface

uses
SysUtils, Classes, WideStrings, DB, SqlExpr, DBXFirebird, FMTBcd, DBClient,
Provider, IniFiles;

type
TDM = class(TDataModule)
SQLConnection1: TSQLConnection;
Q_Cheques: TSQLQuery;
Q_ChequesCODIGO: TIntegerField;
Q_ChequesDATA_EMISSAO: TDateField;
Q_ChequesDATA_VENCIMENTO: TDateField;
Q_ChequesNUMCHEQUE: TStringField;
Q_ChequesTITULAR: TStringField;
Q_ChequesAPELIDO_TITULAR: TStringField;
Q_ChequesTEL_TITULAR: TStringField;
Q_ChequesBANCO: TStringField;
Q_ChequesAGENCIA: TStringField;
Q_ChequesCONTA: TStringField;
Q_ChequesSITUACAO_CHQ: TStringField;
Q_ChequesSACADOR: TStringField;
Q_ChequesTEL_SACADOR: TStringField;
Q_ChequesOBS: TStringField;
DSP_Cheques: TDataSetProvider;
CDS_Cheques: TClientDataSet;
CDS_ChequesCODIGO: TIntegerField;
CDS_ChequesDATA_EMISSAO: TDateField;
CDS_ChequesDATA_VENCIMENTO: TDateField;
CDS_ChequesNUMCHEQUE: TStringField;
CDS_ChequesTITULAR: TStringField;
CDS_ChequesAPELIDO_TITULAR: TStringField;
CDS_ChequesTEL_TITULAR: TStringField;
CDS_ChequesBANCO: TStringField;
CDS_ChequesAGENCIA: TStringField;
CDS_ChequesCONTA: TStringField;
CDS_ChequesSITUACAO_CHQ: TStringField;
CDS_ChequesSACADOR: TStringField;
CDS_ChequesTEL_SACADOR: TStringField;
CDS_ChequesOBS: TStringField;
Q_ChequesVALOR: TFMTBCDField;
CDS_ChequesVALOR: TFMTBCDField;
SQLDataSet1: TSQLDataSet;
DataSetProvider1: TDataSetProvider;
SQLDataSet1CODIGO: TIntegerField;
SQLDataSet1DATA_EMISSAO: TDateField;
SQLDataSet1DATA_VENCIMENTO: TDateField;
SQLDataSet1NUMCHEQUE: TStringField;
SQLDataSet1TITULAR: TStringField;
SQLDataSet1APELIDO_TITULAR: TStringField;
SQLDataSet1TEL_TITULAR: TStringField;
SQLDataSet1BANCO: TStringField;
SQLDataSet1AGENCIA: TStringField;
SQLDataSet1CONTA: TStringField;
SQLDataSet1VALOR: TFMTBCDField;
SQLDataSet1SITUACAO_CHQ: TStringField;
SQLDataSet1SACADOR: TStringField;
SQLDataSet1TEL_SACADOR: TStringField;
SQLDataSet1OBS: TStringField;
ClientDataSet1: TClientDataSet;
ClientDataSet1CODIGO: TIntegerField;
ClientDataSet1DATA_EMISSAO: TDateField;
ClientDataSet1DATA_VENCIMENTO: TDateField;
ClientDataSet1NUMCHEQUE: TStringField;
ClientDataSet1TITULAR: TStringField;
ClientDataSet1APELIDO_TITULAR: TStringField;
ClientDataSet1TEL_TITULAR: TStringField;
ClientDataSet1BANCO: TStringField;
ClientDataSet1AGENCIA: TStringField;
ClientDataSet1CONTA: TStringField;
ClientDataSet1VALOR: TFMTBCDField;
ClientDataSet1SITUACAO_CHQ: TStringField;
ClientDataSet1SACADOR: TStringField;
ClientDataSet1TEL_SACADOR: TStringField;
ClientDataSet1OBS: TStringField;
Q_PesqChq: TSQLQuery;
DSP_PesqChq: TDataSetProvider;
CDS_PesqChq: TClientDataSet;
Q_PesqChqCODIGO: TIntegerField;
Q_PesqChqDATA_EMISSAO: TDateField;
Q_PesqChqDATA_VENCIMENTO: TDateField;
Q_PesqChqNUMCHEQUE: TStringField;
Q_PesqChqTITULAR: TStringField;
Q_PesqChqAPELIDO_TITULAR: TStringField;
Q_PesqChqTEL_TITULAR: TStringField;
Q_PesqChqBANCO: TStringField;
Q_PesqChqAGENCIA: TStringField;
Q_PesqChqCONTA: TStringField;
Q_PesqChqVALOR: TFMTBCDField;
Q_PesqChqSITUACAO_CHQ: TStringField;
Q_PesqChqSACADOR: TStringField;
Q_PesqChqTEL_SACADOR: TStringField;
Q_PesqChqOBS: TStringField;
CDS_PesqChqCODIGO: TIntegerField;
CDS_PesqChqDATA_EMISSAO: TDateField;
CDS_PesqChqDATA_VENCIMENTO: TDateField;
CDS_PesqChqNUMCHEQUE: TStringField;
CDS_PesqChqTITULAR: TStringField;
CDS_PesqChqAPELIDO_TITULAR: TStringField;
CDS_PesqChqTEL_TITULAR: TStringField;
CDS_PesqChqBANCO: TStringField;
CDS_PesqChqAGENCIA: TStringField;
CDS_PesqChqCONTA: TStringField;
CDS_PesqChqVALOR: TFMTBCDField;
CDS_PesqChqSITUACAO_CHQ: TStringField;
CDS_PesqChqSACADOR: TStringField;
CDS_PesqChqTEL_SACADOR: TStringField;
CDS_PesqChqOBS: TStringField;
Q_ChequesCLIENTE: TStringField;
CDS_ChequesCLIENTE: TStringField;
procedure SQLConnection1BeforeConnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
DM: TDM;

implementation

uses U_CadCheques, U_Principal, U_ListChqData;

{$R *.dfm}

procedure TDM.SQLConnection1BeforeConnect(Sender: TObject);
var
IniConf : TIniFile;
begin
if not (FileExists(ExtractFilePath(ParamStr(0)) + 'IniConf.INI')) then
end;
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
IniConf.WriteString('BANCO_DADOS', 'HostName', 'LocalHost');
IniConf.WriteString('BANCO_DADOS', 'Port', '266');
end
else
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
SQLConnection1.Params.Values['HostName'] := IniConf.ReadString('BANCO_DADOS', 'HostName', '');
SQLConnection1.Params.Values['Port'] := IniConf.ReadString('BANCO_DADOS', 'Port', '');
end;
end;

end.


precisa de mais alguma coisa ??
Responder

26/02/2013

Luiz Menin

A principio não. Porém, você deve verificar duas coisas:
- Eu utilizo arquitetura cliente/servidor. Se você utiliza também, vai funcionar sem problemas.
- Se você não utiliza, deve alterar os parâmetros. Por exemplo, path do banco de dados.

Responder

26/02/2013

Francielio Medeiros

eu criei um arquivo INI nele coloquei

Arquivo Ini contem:

[CONFIG]
DATABASE=LocalHost:C:\MSCheques\BANCO\MSDADOS.FDB


Responder

26/02/2013

Luiz Menin


procedure TDM.SQLConnection1BeforeConnect(Sender: TObject);
var
IniConf : TIniFile;
begin
if not (FileExists(ExtractFilePath(ParamStr(0)) + 'IniConf.INI')) then
end;
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
IniConf.WriteString('CONFIG', 'DATABASE', 'LocalHost:C:\MSCheques\BANCO\MSDADOS.FDB');
end
else
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
SQLConnection1.Params.Values['HostName'] := IniConf.ReadString('CONFIG', 'DATABASE', '');
end;
end;



Fico no aguardo do resultado...
Responder

26/02/2013

Luiz Menin

Corrigido:

procedure TDM.SQLConnection1BeforeConnect(Sender: TObject);
var
IniConf : TIniFile;
begin
if not (FileExists(ExtractFilePath(ParamStr(0)) + 'IniConf.INI')) then
end;
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
IniConf.WriteString('CONFIG', 'DATABASE', 'LocalHost:C:\MSCheques\BANCO\MSDADOS.FDB');
end
else
begin
IniConf := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'IniConf.INI');
SQLConnection1.Params.Values['DataBase'] := IniConf.ReadString('CONFIG', 'DATABASE', '');
end;
end;
Responder

27/02/2013

Francielio Medeiros

Amigo o Arquivo foi criado agora e ta funcionando perfeito vou agora instalar no em rede local e volto aqui para dizer mais desde já muito obg pela ajuda!!!!!



O Mundo precisa de mais pessoas como vc que ajuda aos outros tudo de Bom!!!
Responder

27/02/2013

Luiz Menin

Obrigado.
Estou apenas retribuindo a ajuda que me foi dada quando iniciei a programar e visitava fóruns em busca de soluções.

Fico no aguardo do resultado.
Abraço.
Responder

30/06/2013

José

tópico concluído.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar