亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dataprocess.dpr

?? 這是一個三層的進銷存系統
?? DPR
字號:
library Dataprocess;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  Sharemem,
  SysUtils,
  Sconnect,
  Variants,
  DBclient,
  DB,
  Forms,
  Classes;

{$R *.res}

type
  TDataprocessc = Class
  public
    function applyupdata(Sct:Tsocketconnection;CDS:TClientdataset; const ptablename,
      pkeyfield: WideString): WordBool; virtual;abstract;
    function getmaxid(Sct:Tsocketconnection;const ptablename, pkeyfield: WideString): Integer;
      Virtual;abstract;
    function Getsqldata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;ssql:string;const MaxRec:integer=20):boolean;
        virtual;abstract;
    function Geteditdata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;Cid:integer;const MaxRec:integer=20):boolean;
        virtual;abstract;
    function Getadddata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;const MaxRec:integer=20):boolean;
        virtual;abstract;
    function GetAllData(SCT:Tsocketconnection;CDS:Tclientdataset;Tablename,
        Keyfield:wideString;const MaxRec:integer=20):boolean;
        virtual;abstract;
    function GetDataFormServer(SCT:Tsocketconnection;ACDS:Tclientdataset;
        sSql:String;const RecCount:integer=20):wordbool;
        virtual;abstract;
    function insertCDSdata(s,d:Tclientdataset):boolean;virtual;abstract;
    function ClearCDSdata(s:Tclientdataset):boolean;virtual;abstract;
end;

type
TDataprocess = class(TDataprocessc)
public
    function applyupdata(Sct:Tsocketconnection;CDS:TClientdataset; const ptablename,
      pkeyfield: WideString): WordBool; override;
    function getmaxid(Sct:Tsocketconnection;const ptablename, pkeyfield: WideString): Integer;
        override;
    function Getsqldata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;ssql:string;const MaxRec:integer=20):boolean;
        override;
    function Geteditdata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;Cid:integer;const MaxRec:integer=20):boolean;
        override;
    function Getadddata(SCT:tsocketconnection;CDS:Tclientdataset;Tablename,
        keyfield:widestring;const MaxRec:integer=20):boolean;
        override;
    function GetAllData(SCT:Tsocketconnection;CDS:Tclientdataset;Tablename,
        Keyfield:wideString;const MaxRec:integer=20):boolean;
        override;
    function GetDataFormServer(SCT:Tsocketconnection;ACDS:Tclientdataset;
        sSql:String;const RecCount:integer=20):wordbool;
        override;
    function insertCDSdata(s,d:Tclientdataset):boolean;override;
    function ClearCDSdata(s:Tclientdataset):boolean;override;
end;

{ TDataprocess }

function TDataprocess.applyupdata(Sct: Tsocketconnection;
  CDS:TClientdataset; const ptablename, pkeyfield: WideString): WordBool;
begin
  Result:=sct.AppServer.applyupdata(CDS.delta,ptablename,pkeyfield);
end;

function TDataprocess.ClearCDSdata(s: Tclientdataset): boolean;
begin
  S.Close;
  S.Data:=Null;
  Result:=True;
end;

function TDataprocess.Getadddata(SCT: tsocketconnection;
  CDS: Tclientdataset; Tablename, keyfield: widestring;
  const MaxRec: integer): boolean;
var
  TmpCDS:Tclientdataset;
  FkeyValue:string;
  Fsql:string;

        function setsqladd():String;
          const
            sqlfmt='Select * from %s%s%s order by %s';
          var
            sid,eid:integer;
          begin
            eid:=Getmaxid(SCT,Tablename,keyField);
            sid:=eid-20;
            if FkeyValue='' then
              begin
                Result:=Format(sqlFmt,[Tablename,' Where ',keyfield+'>='+inttostr(sid)+
                               ' and '+keyfield+'<='+inttostr(eid),keyfield])
              end
              else
              begin
                Result:=Format(sqlFmt,[Tablename,' where ',keyfield+'>'+inttostr(sid)+
                               ' and '+keyfield+'<='+inttostr(eid)+' and '+keyfield+'>'
                               +#39+FkeyValue+#39,keyfield]);
              end;
          end;
begin
  ClearCDSdata(CDS);
  try
  TmpCDS:=Tclientdataset.Create(nil);
  TmpCDS.FetchOnDemand:=False;
  TmpCDS.PacketRecords:=MaxRec;
  Fkeyvalue:='';
  while true do
    begin
      Fsql:=setsqladd();
      if GetDataFormServer(SCT,TmpCDS,Fsql,MaxRec) then
        InsertCDSdata(TmpCDS,CDS);

      if tmpCDS.RecordCount<MaxRec then
        Break;

      TmpCDS.Last;
      FkeyValue:=TmpCDS.fieldbyname(Keyfield).AsString;
      ClearCDSData(TmpCDS);
      Fsql:='';

      Application.ProcessMessages;
    end;
  finally
    TmpCDS.Close;
    TmpCDS.Free; 
  end;
  Result:=True;
end;

function TDataprocess.GetAllData(SCT: Tsocketconnection;
  CDS: Tclientdataset; Tablename, Keyfield: wideString;
  const MaxRec: integer): boolean;
var
TEMPCDS:Tclientdataset;
FkeyValue:String;
Fsql:String;

    function setSqlall():string;
    const
      conFMT = ' select * from   %s%s%s  order  by  %s  ';
    begin
      if FkeyValue='' then
         Result:=Format(conFMT, [Tablename,'','',KeyField])
      else
         Result:=Format(conFMT, [Tablename,' Where ',keyField+'>'+#39+
                        FkeyValue+#39,KeyField]);
    end;

begin
Result:=True;
ClearCDSData(CDS);
try
  TEMPCDS:=Tclientdataset.Create(nil);
  TEMPCDS.FetchOnDemand:=False;
  TEMPCDS.PacketRecords:=MaxRec;
  FkeyValue:='';
  while True do
    begin
      Fsql:=setSqlall;
      GetDataFormServer(SCT,TempCDS,Fsql,MaxRec);
      InsertCDSData(TempCDS,CDS);

      if TEMPCDS.RecordCount<MaxRec then
        Break;

      TEMPCDS.Last;
      FkeyValue:=TEMPCDS.fieldbyname(KeyField).AsString;
      ClearCDSData(TempCDS);
      Fsql:='';

      Application.ProcessMessages;
    end;
finally
  TempCDS.Close;
  TempCDS.Free;
end;
Result:=True;
end;

function TDataprocess.GetDataFormServer(SCT: Tsocketconnection;
  ACDS: Tclientdataset; sSql: String; const RecCount: integer): wordbool;
begin
  Try
    ACDS.Data:=Sct.AppServer.GetlargeData(sSql,RecCount);
    Result:=True;
  Except
    Result:=False;
  end;
end;

function TDataprocess.Geteditdata(SCT: tsocketconnection;
  CDS: Tclientdataset; Tablename, keyfield: widestring; Cid: integer;
  const MaxRec: integer): boolean;
var
  TempCDS:Tclientdataset;
  FkeyValue:string;
  Fsql:String;

    Function setSqledit():string;
      const
        sqlFmt=' Select * from %s%s%s order by %s ';
      var
        sid,eid:integer;
      begin
        sid:=cid-10;
        eid:=Cid+10;
        if FkeyValue='' then
          begin
            Result:=Format(sqlFmt,[Tablename,' where ',keyfield+'>='+inttostr(sid)+
                              ' and '+keyfield+'<='+inttostr(eid),keyfield]);
          end
          else
            Result:=Format(sqlFmt,[Tablename,' where ',keyfield+'>'+inttostr(sid)+
                              ' and '+keyfield+'<='+inttostr(eid)+' and '+
                              keyfield+'>'+#39+FkeyValue+#39,keyfield]);
          end;

begin
  ClearCDSData(Cds);
  try
    TempCDS:=Tclientdataset.Create(nil);
    TempCDS.FetchOnDemand:=False;
    TempCDS.PacketRecords:=MaxRec;
    FkeyValue:='';
    While True do
      begin
        Fsql:=setSqledit;
        GetDataFormServer(SCT,TempCDS,Fsql,MaxRec);
        InsertCDSdata(TempCDS,CDS);

        if TempCDS.RecordCount<MaxRec then
          Break;

        TempCDS.Last;
        FkeyValue:=TempCDS.fieldbyname(Keyfield).AsString;
        ClearCDSData(TempCDS);
        Fsql:='';

        Application.ProcessMessages;
      end;
  finally
    TempCDS.Close;
    TempCds.Free();
  end;
  Result:=True;
end;

function TDataprocess.getmaxid(Sct: Tsocketconnection; const ptablename,
  pkeyfield: WideString): Integer;
begin
  try
    Result:=Sct.AppServer.Getmaxid(ptablename,pkeyfield);
  except
    Result:=0;
  end;
end;

function TDataprocess.Getsqldata(SCT: tsocketconnection;
  CDS: Tclientdataset; Tablename, keyfield: widestring; ssql: string;
  const MaxRec: integer): boolean;
var
  TempCDS:Tclientdataset;
  FkeyValue:string;
  Fsql:String;

    Function setSqlsql():string;
      const
        sqlFmt=' Select * from %s%s%s order by %s ';
      begin
        if FkeyValue='' then
          begin
            Result:=Format(sqlFmt,[Tablename,' where ',ssql,keyField]);
          end
          else
            Result:=Format(sqlFmt,[Tablename,' where ',
                     keyField+'>'+#39+FkeyValue+#39+' and '+ssql,keyField]);
          end;

begin
  ClearCDSData(Cds);
  try
    TempCDS:=Tclientdataset.Create(nil);
    TempCDS.FetchOnDemand:=False;
    TempCDS.PacketRecords:=MaxRec;
    FkeyValue:='';
    While True do
      begin
        Fsql:=setSqlsql;
        GetDataFormServer(SCT,TempCDS,Fsql,MaxRec);
        InsertCDSdata(TempCDS,CDS);

        if TempCDS.RecordCount<MaxRec then
          Break;

        TempCDS.Last;
        FkeyValue:=TempCDS.fieldbyname(Keyfield).AsString;
        ClearCDSData(TempCDS);
        Fsql:='';

        Application.ProcessMessages;
      end;
  finally
    TempCDS.Close;
    TempCds.Free();
  end;
  Result:=True;
end;

function TDataprocess.insertCDSdata(s, d: Tclientdataset): boolean;
var
  V:Tbookmark;
begin
  Result:=true;
  try
    V:=D.GetBookmark;
      if D.Active then
        d.AppendData(S.Data,False)
      else
        D.Data:=S.Data;
  Finally
    D.GotoBookmark(V);
    D.FreeBookmark(V);
  end;
end;

function CreateDataprocess:TDataprocess;stdcall;
begin
  Result:=Tdataprocess.Create;
end;

Exports
  CreateDataprocess;

begin
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av性久久久久av蜜臀妖精| 91视视频在线观看入口直接观看www | 2024国产精品视频| 日韩美女久久久| 国产一区二区三区黄视频| 色婷婷综合久久久中文一区二区| 日韩欧美你懂的| 亚洲影院久久精品| 99精品热视频| 国产亚洲欧美一区在线观看| 激情深爱一区二区| 91黄色免费观看| 综合亚洲深深色噜噜狠狠网站| 久久爱另类一区二区小说| 色婷婷综合久久久| 自拍偷拍国产精品| 成人av电影免费在线播放| 国产偷国产偷精品高清尤物| 蜜臀久久99精品久久久久宅男| 欧美三级韩国三级日本一级| 亚洲激情图片一区| 一本色道久久加勒比精品| 国产精品美女久久久久久2018| 激情欧美一区二区| 精品久久五月天| 裸体一区二区三区| 欧美一区二区视频在线观看2020| 亚欧色一区w666天堂| 欧美日韩免费视频| 亚洲一区二区三区激情| 欧美日韩综合在线免费观看| 亚洲欧洲性图库| 不卡视频在线看| 中文字幕色av一区二区三区| 北条麻妃国产九九精品视频| 中文字幕第一区综合| 国产精品996| 国产欧美日本一区二区三区| 成人小视频免费在线观看| 亚洲国产成人午夜在线一区 | 在线观看视频一区二区| 亚洲综合在线五月| 欧美日韩精品一二三区| 天堂一区二区在线| 日韩欧美电影一二三| 久久99国产精品久久99| 久久久久久久久久久久电影| 国产成人午夜99999| 国产精品国产精品国产专区不片| av成人免费在线| 亚洲五码中文字幕| 欧美大度的电影原声| 国产成人精品1024| 一区二区在线观看免费 | 久久久久久久久久美女| av在线这里只有精品| 亚洲黄一区二区三区| 欧美日韩亚洲综合在线| 精品一二三四区| 国产精品久久久久久久久免费相片| 色综合久久中文综合久久牛| 日韩成人一区二区三区在线观看| 久久久久国产免费免费 | 成人午夜电影网站| 亚洲午夜免费视频| 精品国产一区二区亚洲人成毛片| av资源网一区| 男人的j进女人的j一区| 亚洲综合免费观看高清完整版 | 欧美日韩dvd在线观看| 久久精品二区亚洲w码| 国产精品美女久久久久久| 欧美视频你懂的| 国产精品一区二区视频| 亚洲国产精品一区二区www| 精品欧美一区二区在线观看| 成人成人成人在线视频| 日韩高清在线不卡| 亚洲少妇30p| 欧美精品一区二区三区视频| 欧美专区亚洲专区| 国产v综合v亚洲欧| 午夜电影网亚洲视频| 国产精品电影一区二区| 精品国内二区三区| 欧美午夜精品理论片a级按摩| 国产精品小仙女| 蜜臀久久99精品久久久画质超高清| 亚洲精品国产品国语在线app| 久久久精品国产免大香伊| 91精品国产乱码久久蜜臀| 91蝌蚪porny| 国产美女在线精品| 久久99精品久久久久久动态图| 亚洲影院理伦片| 亚洲女女做受ⅹxx高潮| 欧美国产精品中文字幕| 久久亚洲捆绑美女| 日韩视频国产视频| 在线不卡欧美精品一区二区三区| 91视频免费播放| 成+人+亚洲+综合天堂| 国产美女在线精品| 国产在线精品免费av| 日本色综合中文字幕| 午夜精品久久久久久久久| 亚洲精品ww久久久久久p站| 亚洲欧洲日韩在线| 中文字幕亚洲精品在线观看| 国产精品久久久一区麻豆最新章节| 久久亚洲精精品中文字幕早川悠里 | 精品一区二区三区视频在线观看| 亚洲国产成人va在线观看天堂| 亚洲男人的天堂在线观看| 亚洲欧洲日本在线| 最新热久久免费视频| 中文字幕日本乱码精品影院| 国产精品视频一区二区三区不卡| 国产亚洲综合av| 国产欧美一区二区在线| 国产日韩成人精品| 中文字幕一区av| 一区二区三区日韩在线观看| 亚洲最新视频在线播放| 亚洲mv大片欧洲mv大片精品| 免费在线观看成人| 麻豆国产欧美日韩综合精品二区 | 色94色欧美sute亚洲13| 色94色欧美sute亚洲线路一久| 在线日韩国产精品| 欧美人狂配大交3d怪物一区| 日韩欧美一级二级| 久久久91精品国产一区二区三区| 国产亚洲美州欧州综合国| 成人欧美一区二区三区小说| 亚洲日本在线看| 石原莉奈一区二区三区在线观看| 麻豆精品蜜桃视频网站| 粉嫩高潮美女一区二区三区 | 欧美成人video| 国产婷婷一区二区| 亚洲综合久久av| 经典三级在线一区| 不卡高清视频专区| 欧美精品日韩一本| 国产亚洲欧美日韩在线一区| 一区二区国产视频| 精品夜夜嗨av一区二区三区| jvid福利写真一区二区三区| 欧美日韩国产三级| 久久久久青草大香线综合精品| 亚洲欧美日韩电影| 狠狠网亚洲精品| 91国偷自产一区二区使用方法| 日韩区在线观看| 亚洲少妇最新在线视频| 精品一区二区三区在线观看国产| 99精品久久99久久久久| 欧美一区日本一区韩国一区| 国产精品传媒入口麻豆| 免费成人在线观看| 91麻豆精品秘密| 久久久久国色av免费看影院| 婷婷国产v国产偷v亚洲高清| 成人午夜激情影院| 日韩免费高清视频| 一区二区三区欧美激情| 国产盗摄一区二区| 日韩一卡二卡三卡国产欧美| 成人免费一区二区三区视频 | 久久91精品久久久久久秒播 | eeuss影院一区二区三区| 欧美福利一区二区| 1000精品久久久久久久久| 精品一区二区三区免费毛片爱 | 色欧美88888久久久久久影院| 精品国产91乱码一区二区三区 | 精品粉嫩超白一线天av| 亚洲成人av一区二区三区| 成人av电影免费在线播放| 2024国产精品| 久久av中文字幕片| 欧美一级片在线| 亚洲成人免费在线观看| 色老汉一区二区三区| 国产精品不卡在线| 国产91精品一区二区麻豆网站| 欧美草草影院在线视频| 天涯成人国产亚洲精品一区av| 色欧美日韩亚洲| 亚洲蜜臀av乱码久久精品| 欧美一区二区三区性视频| 一区二区三区四区av| 色av一区二区| 亚洲精品国产成人久久av盗摄| 色综合久久中文综合久久97| 综合网在线视频| 在线视频亚洲一区| 亚洲一区二区影院| 欧美色男人天堂|