![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
|
TADOQuery
buenas a todos
XP sp2, mysql, verdion de delphi desconocida, la imagen del about no la pude subir o debria venir acaquiero crear una clase la cual me provea un punto de accesso comun a un componente que me permita realizar consultas, TADOQuery, aqui viene el condigo la idea basica era realizar un patron Singleton... pero me sale un error : Cannto perform this operation on a closed dataset. cuando le doy F9 al proyecto y en el form que usa esta clase Código:
unit DBQuery;
interface
uses
DB, ADODB,
DM, ListaSE, QParametro;
type
TDBQuery = class
private
parametroCargado : Boolean;
listaSE : TListaSE;
class var
query : TADOQuery;
preguntador : TDBQuery;
constructor Create();// override;
public
class function getInstance(): TDBQuery;
class function sayHi() : String;
function consultaSelect( consulta : String ) : Integer;
function getFieldByName( campo : String ) : Variant;
destructor Destroy(); override;
procedure cargarParametro( param : TQParametro);
end;
implementation
{ TDBQuery }
procedure TDBQuery.cargarParametro(param: TQParametro);
begin
listaSE.insertarFinal(param);
Self.parametroCargado := True;
end;
function TDBQuery.consultaSelect(consulta: String): Integer;
var
param : TQParametro;
nombre , valor : String;
begin
Self.query.SQL.Clear();
Self.query.SQL.Add(consulta);
if parametroCargado = True then
begin
while Self.listaSE.esVacio() <> true do
begin
param := Self.listaSE.getDato();
nombre := param.getNombre();
valor := param.getValor();
Self.query.Parameters.ParamByName( nombre ).Value := valor;
end;
parametroCargado := False;
end;
Result := Self.query.RecordCount;
end;
constructor TDBQuery.Create;
begin
query := TADOQuery.Create(nil);
query.Connection := DataModule1.AC1;
///--------------------------------------------------
//If query.Active then query.Close;
// query.Prepared := True;
// query.Open();
///--------------------------------------------------
listaSE := TListaSE.Create();
end;
destructor TDBQuery.Destroy;
begin
query.Free;
//lista.Free;
//If query.Active then query.Close;
query.Prepared := False;
inherited;
end;
function TDBQuery.getFieldByName(campo: String): Variant;
begin
Self.query.FieldByName(campo).Value;
Self.query.Next;
end;
class function TDBQuery.getInstance: TDBQuery;
begin
if Self.preguntador = nil then begin
preguntador := TDBQuery.Create();
end;
Result := preguntador;
end;
class function TDBQuery.sayHi: String;
begin
Result := 'Hola Amigo. THis is a test, dont scare yourself.';
end;
end.
procedure TDBQuery.cargarParametro(param: TQParametro);
begin
listaSE.insertarFinal(param);
Self.parametroCargado := True;
end;
function TDBQuery.consultaSelect(consulta: String): Integer;
var
param : TQParametro;
nombre , valor : String;
begin
Self.query.SQL.Clear();
Self.query.SQL.Add(consulta);
if parametroCargado = True then
begin
while Self.listaSE.esVacio() <> true do
begin
param := Self.listaSE.getDato();
nombre := param.getNombre();
valor := param.getValor();
Self.query.Parameters.ParamByName( nombre ).Value := valor;
end;
parametroCargado := False;
end;
Result := Self.query.RecordCount;
end;
constructor TDBQuery.Create;
begin
query := TADOQuery.Create(nil);
query.Connection := DataModule1.AC1;
//TDataSet.
//query.Recordset.Open(nil, nil, nil, nil, 1);
listaSE := TListaSE.Create();
end;
function TDBQuery.getFieldByName(campo: String): Variant;
begin
Self.query.FieldByName(campo).Value;
Self.query.Next;
end;
class function TDBQuery.getInstance: TDBQuery;
begin
if Self.preguntador = nil then begin
preguntador := TDBQuery.Create();
end;
Result := preguntador;
end;
class function TDBQuery.sayHi: String;
begin
Result := 'Hola Amigo. THis is a test, dont scare yourself.';
end;
end.
jpero que? Si es algun error de novato perdon ![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con el TADOQuery | Alexandro | SQL | 8 | 16-01-2009 07:22:22 |
| Problema con TADOQuery | Nomad | SQL | 11 | 25-10-2007 15:19:27 |
| Clonar TADOQuery | david.rguez | Conexión con bases de datos | 2 | 19-09-2007 16:26:44 |
| Tadoquery Y Dbgrid | fernandoio | Conexión con bases de datos | 3 | 11-06-2006 04:10:11 |
| Problema con TADOQuery | saul_montalvo | Conexión con bases de datos | 2 | 23-05-2003 19:08:54 |
|