Hola colegas,
El problema es el siguiente.
Estoy utilizando delphi 6 con los componentes zeos version 6.6.0 beta conectandome a mysql 5.0
Estoy intentando hacer una clase que conecte a la base de datos sin la necesidad de estar agregando los componentes. Hasta ahora lo he logrado sin problemas ya q me base en los ejemplos q trae los componentes zeos.
Bueno , vamos a los bifes
Lo que yo necesito saber es si estan bien los datos (database,host,user,pass, etcetera) antes de dar el connection.open; ya q si estos estan mal me larga un sql error raise exception y demas yerbas... lo cual es molesto para el usuario ya q es un error de windows y no del programa.
Lo q yo estoy intentando hacer es comprobar antes q este todo bien, o en su defecto no llegar a un error de windows por asi decirlo. Es decir filtrar el error y yo poder informar cual es el problema a partir del error encontrado..
bueno aca les dejo el poco codigo q hasta ahora hice..
Código Delphi
[-]
unit UConection;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ZClasses, ZDbcIntfs, ZCompatibility, ZDbcMysqlUtils,
ZDbcMySql
;
type
TConnection = class
private
Protocol:string;
HostName:string;
Port:integer;
DataBase:string;
UserName:string;
Password:string;
Connection: IZConnection;
ResultSet: IZResultSet;
LastRowNr: Integer; InsertState: Boolean;
public
constructor Create(Prot:string;Host:string;Prt:integer;DB:string;User:string;Pass:string);
function connect():boolean;
function IsConnect():boolean;
end;
implementation
constructor TConnection.Create(Prot:string;Host:string;Prt:integer;DB:string;User:string;Pass:string);
begin
Protocol:=Prot;
HostName:=Host;
Port:=Prt;
DataBase:=DB;
UserName:=User;
Password:=Pass;
end;
function TConnection.connect():boolean;
var
Url: string;
begin
if Port <> 0 then
begin
Url := Format('zdbc:%s://%s:%d/%s?UID=%s;PWD=%s', [Protocol, HostName,
Port, Database, UserName, Password]);
end
else
begin
Url := Format('zdbc:%s://%s/%s?UID=%s;PWD=%s', [Protocol, HostName,
Database, UserName, Password]);
end;
Connection := DriverManager.GetConnectionWithParams(Url, nil);
Connection.SetAutoCommit(True);
Connection.SetTransactionIsolation(tiReadCommitted);
Connection.Open;
connect:=not Connection.IsClosed;
end;
function TConnection.IsConnect():boolean;
begin
if Assigned(Connection) then
if not Connection.IsClosed then
Connection.Close;
end;
end.
Desde ya muchas gracias, ayudenme asi luego posteo lo q sale de esto
saludos