日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql工厂类

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql工厂类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//author: cxg
//sql工廠

unit MySQL;

interface

uses
? SysUtils, SqlExpr, DBClient, db, DBXCommon,Provider;

type
? TMySQL = class(TObject)
? private
??? fSqlcommand: string;
??? fQry: TClientDataSet;
??? fSqlMethod: TSqlServerMethod;
??? fSqlConnection: TSQLConnection;
??? fDbxTrans: TDBXTransaction;
??? fP:TDataSetProvider;
??? fD:TClientDataSet;
??? procedure SetConnection(Cn:TSQLConnection);
? public
??? constructor Create;
??? destructor Destroy; override;
??? procedure AddParam(const Value: Variant);
??? //說明: 添加參數值
??? //參數: const aValue: Variant -- 參數值
??? function GetData: TDataSet;? //非事務性查詢
??? procedure ExecSql;????????????? //事務性操作
??? procedure BeginTrans;????????? //開始事務
??? procedure CommitTrans;???????? //提交事務
??? procedure RollbackTrans;?????? //回滾事務
??? property CommandText: string read fSqlcommand write fSqlcommand;? //sql語句
??? property Connection: TSQLConnection read fSqlConnection write SetConnection; //連接控件
? end;

implementation

{ TMySQL }

procedure TMySQL.AddParam(const Value: Variant);
begin
? fQry.Params.AddParameter.Value :=Value;
end;

procedure TMySQL.BeginTrans;
begin
? fDbxTrans :=fSqlConnection.BeginTransaction;
end;

procedure TMySQL.CommitTrans;
begin
? fSqlConnection.CommitFreeAndNil(fDbxTrans);
end;

constructor TMySQL.Create;
begin
? inherited;
? fQry := TClientDataSet.Create(nil);
? fSqlMethod :=TSqlServerMethod.Create(nil);
? fp:=TDataSetProvider.Create(nil);
? fP.Name :='p23424';
? fd:=TClientDataSet.Create(nil);
? fD.ProviderName :=fp.Name;
end;

destructor TMySQL.Destroy;
begin
? fQry.Free;
? fQry :=nil;
? fP.Free;
? fp:=nil;
? fD.Free;
? fd:=nil;
? fSqlMethod.Free;
? fSqlMethod :=nil;
? inherited;
end;

procedure TMySQL.ExecSql;
begin
? fSqlMethod.ServerMethodName := 'TServerMethods1.PostData';
? fSqlMethod.ParamByName('sql').AsString := fSqlcommand;
? fSqlMethod.ParamByName('params').AsParams := fQry.Params;
? fSqlMethod.ExecuteMethod;
end;

function TMySQL.GetData: TDataSet;
begin
? fSqlMethod.ServerMethodName := 'TServerMethods1.getData';
? fSqlMethod.ParamByName('sql').AsString := fSqlcommand;
? fSqlMethod.ParamByName('params').AsParams := fQry.Params;
? fSqlMethod.ExecuteMethod;
? Result := fSqlMethod.ParamByName('returnparameter').AsDataSet;
end;

procedure TMySQL.RollbackTrans;
begin
? fSqlConnection.RollbackFreeAndNil(fDbxTrans);
end;

procedure TMySQL.SetConnection(Cn: TSQLConnection);
begin
? if (fSqlMethod.SQLConnection =nil) then
? fSqlMethod.SQLConnection := Cn;
end;

end.

轉載于:https://www.cnblogs.com/hnxxcxg/archive/2012/02/12/2347694.html

總結

以上是生活随笔為你收集整理的sql工厂类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。