1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
unit UQAYSQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DB,AdoDB,DBTables;
type
TAction=(None,Read,Write);
//**************************************************
TQAYSQueryBDE = Class(TQuery)
private
Session :TSession;
Public
Constructor Create (Aowner : Tcomponent);Virtual;abstract;
Destructor Destroy;Virtual;abstract;
function QKParamByName(const ValueA: string): TParameter;Overload;Virtual;abstract;
Procedure QKParamByName(ValueA: string;TypeValueA:TDataType;Value:Variant);Overload;Virtual;abstract;
Procedure QKParamById(ValueA: Integer;TypeValueA:TDataType;Value:Variant);Virtual;abstract;
//******************************
Published
End;
//**************************************************
TQAYSQueryADO = Class(TAdoQuery)
private
AdoConnection:TAdoConnection;
Public
Constructor Create (Aowner : Tcomponent);override;
Destructor Destroy;override;
function QKParamByName(const ValueA: string): TParameter;overload;
Procedure QKParamByName(ValueA: string;TypeValueA:TDataType;Value:Variant);overload;
Procedure QKParamById(ValueA: Integer;TypeValueA:TDataType;Value:Variant);
//******************************
Published
End;
//**************************************************
TQAYSQuery = Class(TQAYSQueryADO)
private
FAction:TAction;
FFinData:Boolean;
FNbOccurs:Integer;
FNbCol:Integer;
Public
//******************************
// Constructeur et destructeur
//******************************
Constructor Create (Aowner : Tcomponent);override;
Destructor Destroy;override;
//******************************
// Gestion SQL
//******************************
Function QKExecute:TmodalResult;
//******************************
Published
Property Action : TAction Read FAction Write FAction;
Property FinData:Boolean Read FFinData Write FFinData;
Property NbOccurs:Integer Read FNbOccurs Write FNbOccurs;
Property NbCol:Integer Read FNbCol Write FNbCol;
End;
//**************************************************
implementation
//**************************************************
//**************************************************
Constructor TQAYSQuery.Create (Aowner : Tcomponent);
begin
inherited Create(Aowner);
end;
//**************************************************
Destructor TQAYSQuery.Destroy;
begin
Inherited Destroy;
end;
//**************************************************
//**************************************************
Constructor TQAYSQueryADO.Create (Aowner : Tcomponent);
var
CnxString:String;
begin
inherited Create(Aowner);
AdoConnection:=TAdoConnection.Create(nil);
CnxString:= 'Provider=ADsDSOObject;'
+'Encrypt Password=False;'
+'Location=d:\bdd;'
+'Mode=Read;'
+'Bind Flags=0;'
+'ADSI Flag=-2147483648';
ConnectionString := CnxString;
CursorLocation := clUseServer;
CursorType := ctDynamic ;
LockType := ltReadOnly ;
SQL.Clear;
Connection := TADOConnection.Create(nil);
Connection.LoginPrompt := True;
Connection.ConnectionString := CnxString;
Connection.Open;
Connection.Connected;
end;
//**************************************************
Destructor TQAYSQueryADO.Destroy;
begin
AdoConnection.Destroy;
Inherited Destroy;
end;
//**************************************************
Function TQAYSQuery.QKExecute:TmodalResult;
begin
Try
if faction = Read then Self.Open
else if faction = Write then Self.ExecSQL;
result := MrOk;
FFinData :=Self.Eof;
FNbOccurs := self.RecordCount;
FNbCol:= self.FieldCount;
Finally
result := mrAbort;
End;
end;
//**************************************************
//**************************************************
function TQAYSQueryADO.QKParamByName(const ValueA: string): TParameter;
begin
result:=Parameters.ParamByName(ValueA);
end;
//**************************************************
Procedure TQAYSQueryADO.QKParamByName(ValueA: String;TypeValueA:TDataType;Value:Variant);
begin
Parameters.ParamByName(ValueA).Value := Value;
end;
//**************************************************
Procedure TQAYSQueryADO.QKParamById(ValueA: Integer;TypeValueA:TDataType;Value:Variant);
begin
if not (TypeValueA=(FtMemo)) then
Parameters[ValueA].Value:= Value
else
Parameters[ValueA].LoadFromFile(Value, ftMemo);
end;
//**************************************************
//**************************************************
end. |
Partager