Orientação a Objeto dando erro de ponteiro
26/03/2013
0
criei uma classe pra estudos e estou tentando brincar com ela num form limpo.
porém dá um erro depois de usá-la.
é uma classe de conexão com o banco que por sinal conecta, funciona!
mas depois que continua a execução de objetos do form no evento onclick de um botão
aparece um erro de ponteiro inválido.
Estou deixando a classe e a utilização dela no form pra quem poder me abrir os olhos.
********************************************************************
[ UTILIZAÇÃO ]
procedure Tfprinc.Button1Click(Sender: TObject);
var
conectar: Tconexao;
begin
conectar.cria;
conectar.banco_dados:='D:\FUTTURA\SISTEMASD7\Emaflex\DATA\inttegra.ftt';
conectar.conectar();
conectar.fim;
end;
*********************************************************************
[ CLASSE CRIADA ]
unit Uconexao;
interface
uses SysUtils, IniFiles, Classes, DB, IBCustomDataSet, Dialogs, IBQuery, IBDatabase,
DBClient, Provider, IBScript;
type Tconexao = class
protected
usuario: String;
senha: String;
banco: String;
ib: TIBDatabase;
t: TIBTransaction;
public
constructor cria;
destructor fim;
function conectar : boolean;
property banco_dados : string read banco write banco;
end;
implementation
constructor tconexao.cria;
begin
ib:= TIBDatabase.Create(nil);
t:= TIBTransaction.create(nil);
end;
function tconexao.conectar : boolean;
begin
try
ib.Params.Clear;
ib.DatabaseName:=banco;
ib.SQLDialect:=3;
ib.DefaultTransaction:= t;
ib.Params.Add('user_name=SYSDBA');
ib.Params.Add('password=masterkey');
ib.Params.Add('lc_ctype=none');
ib.IdleTimer := 0;
ib.LoginPrompt:=false;
ib.Connected:=true;
result:= true;
ShowMessage('Conectado a ' + banco );
except
ShowMessage('Erro ao conectar no banco de dados');
result:= false;
end;
end;
destructor tconexao.fim;
begin
t.free;
ib.free;
end;
end.
Adib Valentim
Posts
26/03/2013
William
procedure Tfprinc.Button1Click(Sender: TObject); var conectar: Tconexao; begin conectar := TConexao.cria(); conectar.banco_dados:='D:\FUTTURA\SISTEMASD7\Emaflex\DATA\inttegra.ftt'; conectar.conectar(); conectar.fim; end;
26/03/2013
Adib Valentim
funcinou!
Nossaaaaaa. que marcada de toco a minha.
Mt obrigado!
27/03/2013
William
Qualquer dúvida estamos por aí ...
06/04/2013
José
estou marcando este tópico como resolvido.
Clique aqui para fazer login e interagir na Comunidade :)