![]() |
![]() |
![]() |
![]() |
![]() |
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 ![]() quiero 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 ![]() |
|
|
![]() |
||||
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 |
![]() |
|