Posteado por: alejandrolaorden | 11 junio, 2014

Crear un objeto Delphi con TClientDataSet en memoria sin ocupar una conexión

{
11-06-2014. Version 1.00. Creacion de la unidad. ALH
}
unit uParam;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DB, MemDS, DBAccess, Ora, DBClient, Provider ;

type
TParam = class(TObject)

private
lDataSet: TClientDataSet;
public
constructor Create(const sApp:String; const sPlaza: string; AOraSession: TOraSession);
destructor Destroy; override;
function GetParamBool(sKey:String):Boolean;
function GetParamInt(sKey: String):Integer;
function GetParamStr(sKey: String): String;
{ Public declarations }
end;

 

implementation

{ TProducto }
constructor TParam.Create(const sApp:String; const sPlaza: string; AOraSession: TOraSession);
var
sSQL : String;
lProvider: TDataSetProvider;
qUsr: TOraQuery;

begin
try
lProvider := TDataSetProvider.Create(nil);
lDataSet := TClientDataSet.Create(nil);
qUsr := TOraQuery.Create(nil);

qUsr.Session := AOraSession;
sSQL := ‘SELECT DES_KEY, DES_VALUE ‘ +
‘ FROM ALERTRAN.SCREEN_CONF_RENOVA ‘ +
‘ WHERE DES_APP = ‘ + QuotedStr(sApp) +
‘ AND DES_DATVARIABLE = ‘ + QuotedStr(sPlaza);
qUsr.sql.text := sSQL;
qUsr.Open;
lProvider.DataSet := qUsr;
lDataSet.Data := lProvider.Data;
lDataSet.IndexFieldNames := ‘DES_KEY’;
finally
qUsr.Free;
lProvider.Free;
end;
end;

destructor TParam.Destroy;
begin
lDataSet.free;
inherited;
end;

function TParam.GetParamStr(sKey: String): String;
begin
if (lDataSet.FindKey([sKey])) then
begin
Result := lDataSet.FieldByName(‘DES_VALUE’).AsString;
end
else
Result:= ‘-1’;
end;

function TParam.GetParamBool(sKey: String): Boolean;
begin
if (lDataSet.FindKey([sKey])) then
begin
if (UpperCase(lDataSet.FieldByName(‘DES_VALUE’).AsString) = ‘TRUE’) then
Result := True
else
Result := False;
end
else
Result:= False;
end;

function TParam.GetParamInt(sKey: String): Integer;
begin
if (lDataSet.FindKey([sKey])) then
begin
Result := lDataSet.FieldByName(‘DES_VALUE’).AsInteger;
end
else
Result:= -1;
end;

end.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: