Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   crear componente de bd dinamicamente (https://www.clubdelphi.com/foros/showthread.php?t=40894)

gushmaish 01-03-2007 16:18:41

crear componente de bd dinamicamente
 
hola como les va?
estoy intentando agregar a mi clase TConnection un componente zconnection,

la cosa es q no estoy muy seguro de como hacerlo, aqui va la partecita donde se conecta..
Código:

unit UConection;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ZClasses, ZDbcIntfs, ZCompatibility,Grids,
ZConnection, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset,
    //Dejar solo la base de datos q se utiliza
ZDbcMySql,ZDbcMysqlUtils, ExtCtrls
    //ZDbcInterbase6,
    //ZDbcPostgreSql,
    //ZDbcDBLib
    ;

type
    TConnection = class
private
    //datos para la coneccion
    Protocol:string;
    HostName:string;
    Port:integer;
    DataBase:string;
    UserName:string;
    Password:string;

    connection:TZConnection;
    FDataset: TZQuery;

public
    constructor Create(); overload;
    constructor Create(Prot:string;Host:string;Prt:integer;DB:string;User:string;Pass:string);overload;
    function connect():boolean;
end;

implementation

constructor TConnection.Create();//en este caso
begin
    Protocol:='';
    HostName:='';
    Port:=0;
    DataBase:='';
    UserName:='';
    Password:='';
end;

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
  connection:=TZConnection.Create(Self);
  connection.Protocol:=Protocol;
  connection.HostName:=HostName;
  connection.Port:=Port;
  connection.Database:=DataBase;
  connection.User:=UserName;
  connection.Password:=Password;
  try//intenta conectarse y si lo logra devuelve true, sino false
    connection.Connected:=true;
  except
    connect:=false;
    exit;
  end;
  connect:=true;
end;

end.

me dice q Son imcompatibles "TComponent y TConnection"

y si le saco la parte de

Código:

connection:=TZConnection.Create(Self);

tambien me da error

basicamente lo q necesito es crear un componente dinamicamente, ya q no solo necesito crear un zconnection sino tambien un zquery y demas componentes zeos..

desde ya muy agradecido

pijo 01-03-2007 18:44:29

No se si puede ser ...
 
... pero yo probaria de cambiar la instrucción esa del create que usas.
Cita:

connection:=TZConnection.Create(Self);
El create del TZConnection necesita como parámetro un objeto de la clase TComponent, pero el Self que le pasas es un TConnection que es la clase que creas tu que no desciende del tipo TComponent.
Por eso te dice que no són compatibles, una de dos, o haces que tu TConnection descienda del TComponent y entonces ya funcionará, o le pones al Create(xxx) donde xxx sea el nombre de un objeto del tipo TComponent.

ánimos

gushmaish 01-03-2007 19:28:45

:D Muchas gracias amigo!!!

Eso anduvo bien, lo unico q hice fue heredar de TComponent

Código:

TConnection = class(TComponent)
hasta luego y gracias nuevamente


La franja horaria es GMT +2. Ahora son las 19:42:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi