sábado, 13 de junho de 2009

Ola!!!

Este é meu primeiro post em blog's e confesso não ter experências no assunto.
Estou criando este blog com intuito de passar algumas experiências adquiridas e também estar trocando ideias com outros programadores em delphi, essa poderosa ferramenta para desenvolvimento.
Com a chegada do Embarcadeiro acredito que muitos programadores que usavam ou ainda usam o delphi 7, "que foi uma das versões mais usadas ao longo dos tempos", estão migrando suas aplicações para esta nova versão da IDE ou buscando conhecimento na mesma para tal procedimento, e eu também me encontro neste time.
No momento estou realizando estudos sobre o assunto e espero em breve estar postando informações úteis sobre o assunto.

No momento deixarei aqui uma Unit como exemplo para aqueles que usam o DBX do delphi 7 para conectar ao banco de dados firebird. Nessa rotina é criado os arquivos "dbxdrivers.ini" e "dbxconnections.ini" quando ocorrer um erro na conexão com o banco

unit uFrmConfigConexao;


interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IniFiles, uFrmPadrao, DB, DBClient, StdCtrls, Mask, DBCtrls, Buttons;

type
TFrmConfigConexao = class(TFrmPadrao)
CdsConfig: TClientDataSet;
CdsConfigPATHBANCO: TStringField;
CdsConfigNOMEUSU: TStringField;
CdsConfigSENHAUSU: TStringField;
GroupBox1: TGroupBox;
DataConfig: TDataSource;
Label1: TLabel;
DbPath: TDBEdit;
Label2: TLabel;
DbUsuario: TDBEdit;
Label3: TLabel;
DbSenha: TDBEdit;
OpenDialog1: TOpenDialog;
SpeedButton1: TSpeedButton;
CdsConfigDRIVER: TStringField;
DbDriver: TDBComboBox;
Label4: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
procedure DbDriverKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject); procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
sConfig1,sConfig2 : TIniFile;
sNomeArq1,
sNomeArq2 : string;
function LeDbxConectionsINI:Boolean;
function GravaDbxConectionsINI:Boolean; public { Public declarations } end;

var FrmConfigConexao: TFrmConfigConexao;

implementation

Uses uLibrary;

{$R *.dfm}

{ TFrmConfigConexao }
function TFrmConfigConexao.GravaDbxConectionsINI: Boolean;
begin
// dbxconection.ini
sConfig1 := TIniFile.Create(sNomeArq1);

sConfig1.WriteString('WorkCom','DriverName',CdsConfigDRIVER.AsString); sConfig1.WriteInteger('WorkCom','BlobSize',1);
sConfig1.WriteString('WorkCom','CommitRetain','False');
sConfig1.WriteString('WorkCom','Database',CdsConfigPATHBANCO.AsString);
sConfig1.WriteString('WorkCom','ErrorResourceFile','');
sConfig1.WriteInteger('WorkCom','LocaleCode',0000);
sConfig1.WriteString('WorkCom','Password',CdsConfigSENHAUSU.AsString);
sConfig1.WriteString('WorkCom','RoleName','RoleName');
sConfig1.WriteString('WorkCom','ServerCharSet','');
sConfig1.WriteInteger('WorkCom','SQLDialect',3);
sConfig1.WriteString('WorkCom','Interbase TransIsolation','ReadCommited'); sConfig1.WriteString('WorkCom','User_Name',CdsConfigNOMEUSU.AsString); sConfig1.WriteString('WorkCom','WaitOnLocks','True'); sConfig1.Free;

// drivers.ini
sConfig2 := TIniFile.Create(sNomeArq2);
sConfig2.WriteString('UIB FireBird15','GetDriverFunc','getSQLDriverINTERBASE'); sConfig2.WriteString('UIB FireBird15','LibraryName','dbexpUIBfire15.dll'); sConfig2.WriteString('UIB FireBird15','VendorLib','fbclient.dll');
sConfig2.WriteInteger('UIB FireBird15','BlobSize',-1);
sConfig2.WriteString('UIB FireBird15','CommitRetain','False');
sConfig2.WriteString('UIB FireBird15','Database',CdsConfigPATHBANCO.AsString); sConfig2.WriteString('UIB FireBird15','ErrorResourceFile','');
sConfig2.WriteInteger('UIB FireBird15','LocaleCode',0000);
sConfig2.WriteString('UIB FireBird15','Password',CdsConfigSENHAUSU.AsString); sConfig2.WriteString('UIB FireBird15','RoleName','RoleName');
sConfig2.WriteString('UIB FireBird15','ServerCharSet','');
sConfig2.WriteInteger('UIB FireBird15','SQLDialect',3);
sConfig2.WriteString('UIB FireBird15','Interbase TransIsolation','ReadCommited'); sConfig2.WriteString('UIB FireBird15','User_Name',CdsConfigNOMEUSU.AsString); sConfig2.WriteString('UIB FireBird15','WaitOnLocks','True'); sConfig2.Free;
end;

function TFrmConfigConexao.LeDbxConectionsINI: Boolean;
begin
// exclui arquivos existentes
if FileExists(sNomeArq1) then
DeleteFile(sNomeArq1);
if FileExists(sNomeArq2) then
DeleteFile(sNomeArq2);
end;

procedure TFrmConfigConexao.FormCreate(Sender: TObject);
begin
inherited;
sNomeArq1 := ExtractFilePath(Application.ExeName)+'dbxconnections.ini';
sNomeArq2 := ExtractFilePath(Application.ExeName)+'dbxdrivers.ini';
if not CdsConfig.Active then
CdsConfig.CreateDataSet; CdsConfig.EmptyDataSet;
end;

procedure TFrmConfigConexao.SpeedButton1Click(Sender: TObject);
begin
inherited;
OpenDialog1.Execute;
end;

procedure TFrmConfigConexao.OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
begin
inherited;
CdsConfigPATHBANCO.AsString := OpenDialog1.FileName;
end;

procedure TFrmConfigConexao.FormShow(Sender: TObject);
begin
inherited;
LeDbxConectionsINI;
end;

procedure TFrmConfigConexao.BitBtn1Click(Sender: TObject);
begin
inherited;
GravaDbxConectionsINI;
end;

end.