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

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

?? myldbsqlprocessor.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  destructor Destroy; override;
  // adds new node to the tree
  procedure AddNode(NewType: TMYLDBQueryExprType; RightNode: TMYLDBQueryExprNode;
                    bAll, bCorresponding: Boolean; ColumnList: TStringList=nil);
  function AllConditionsApplied: Boolean;
  // check that there is no INTO clause
  function HasInto: Boolean;
 end;



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBSQLUnion
// UNION SQL command
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBSQLUnion = class (TMYLDBSQLCursorCommand)
  protected
   FRootNode: TMYLDBQueryExprNode;         // root node in unions,excepts tree

   // parses [ALL]
   function ParseAll: Boolean;

   // parses [ <corresponding spec> ]
   function ParseCorrespondingSpec(var ColumnsList: TStringList): Boolean;

   // parses SELECT ...
   function ParseQuerySpecification: TMYLDBQueryExprNode;

   // parses <query specification> | <table value constructor>  | <explicit table>
   function ParseSimpleTable: TMYLDBQueryExprNode;

   // parses <simple table> |
   // <left paren> <non-join query expression> <right paren>
   function ParseNonJoinQueryPrimary: TMYLDBQueryExprNode;

   // parses <non-join query primary> |
   // <query term> INTERSECT [ ALL ] [ <corresponding spec> ] <query primary>
   function ParseNonJoinQueryTerm: TMYLDBQueryExprNode;

   // parses <non-join query term> |
   // <query expression> UNION  [ ALL ] [ <corresponding spec> ] <query term> |
   // <query expression> EXCEPT [ ALL ] [ <corresponding spec> ] <query term>
   function ParseNonJoinQueryExpression: TMYLDBQueryExprNode;

   // parses <non-join query expression>  | <joined table>
   function ParseQueryExpression: TMYLDBQueryExprNode;

   // builds AO
   function BuildAO(Node: TMYLDBQueryExprNode; RequestLive: Boolean; ParentQueryAO: TMYLDBAO;
         ParentCursor: TMYLDBCursor; AllowNotAppliedConditions: Boolean): TMYLDBAO;

  public
   // creates object
   constructor Create(Lexer: TMYLDBLexer; Query: TDataSet);
   // destroys object
   destructor Destroy; override;
   // parses query
   procedure Parse; override;
   // check if correlated subquery apllied
   function AllConditionsApplied: Boolean; override;
   // builds AO tree
   function BuildAOTree(query: TDataset; RequestLive: Boolean; ParentQueryAO: TMYLDBAO;
     ParentCursor: TMYLDBCursor; AllowNotAppliedConditions: Boolean): TMYLDBAO; override;

 end;//TMYLDBSQLUnion



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBSQLInsert
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBSQLInsert = class (TMYLDBSQLCommand)
  protected
   TableName:             string;  // Table Name
   DatabaseFileName:      string;
   Password:              string;  // table password
   FieldNames:            TStringList;
   FieldValues:           array of TList;
   InternalSelecter:      TMYLDBSQLSelect;
  protected
   procedure ParseValuesList;
  public
   // creates object
   constructor Create(Lexer: TMYLDBLexer; Query: TDataSet);
   // destroys object
   destructor Destroy; override;
   // parses query
   procedure Parse; override;
   // executes query
   procedure ExecSQL(
                      query: TDataset;
                      IsRoot,
                      RequestLive: boolean;
                      var ReadOnly: boolean;
                      ParentQueryAO: TMYLDBAO = nil;
                      ParentCursor: TMYLDBCursor = nil
                     ); override;
 end;//TMYLDBSQLInsert



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBSQLUpdate
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBSQLUpdate = class (TMYLDBSQLCommand)
  protected
   DatabaseFileName:          String;  // DB Name
   TableName:             string;  // Table Name
   Password:              string;  // table password
   FieldNames:            TStringList;
   FieldValues:           TList;
   IsFieldValuesSubquery: Boolean;
   FieldValuesSubqueryExpr: TMYLDBExpression;
   InternalSelecter:      TMYLDBSQLSelect;
   FSelectLexer:          TMYLDBLexer;
   FTablePseudonym:       String;
  public
   // creates object
   constructor Create(Lexer: TMYLDBLexer; Query: TDataSet);
   // destroys object
   destructor Destroy; override;
   // parses query
   procedure Parse; override;
   // executes query
   procedure ExecSQL(
                      query: TDataset;
                      IsRoot,
                      RequestLive: boolean;
                      var ReadOnly: boolean;
                      ParentQueryAO: TMYLDBAO = nil;
                      ParentCursor: TMYLDBCursor = nil
                     ); override;
 end;//TMYLDBSQLUpdate



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBSQLDelete
//
////////////////////////////////////////////////////////////////////////////////


 TMYLDBSQLDelete = class (TMYLDBSQLCommand)
  protected
   InternalSelecter:      TMYLDBSQLSelect;
   TableName:             string;  // Table Name
   FullDelete: boolean;
  public
   // creates object
   constructor Create(Lexer: TMYLDBLexer; Query: TDataSet);
   // destroys object
   destructor Destroy; override;
   // parses query
   procedure Parse; override;
   // executes query
   procedure ExecSQL(
                      query: TDataset;
                      IsRoot,
                      RequestLive: boolean;
                      var ReadOnly: boolean;
                      ParentQueryAO: TMYLDBAO = nil;
                      ParentCursor: TMYLDBCursor = nil
                     ); override;
 end;//TMYLDBSQLDelete



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBDDLTableManipulation
//
////////////////////////////////////////////////////////////////////////////////


 // FieldDef element
 TSQLFieldDef = class (TObject)
  public
   FieldName:                String;       // field name or pseudonym
   CreateIfNotExists:        Boolean;

   // FieldType
   newFieldType:             Boolean;
      FieldType:             TMYLDBAdvancedFieldType;

   // field length ex: String(255)
   newLength:                Boolean;
      Length:                Integer;

   // is Requared field (NOT NULL)
   newRequired:              Boolean;
      Required:              Boolean;

   // Autoinc settings
   newAutoincIncrement:      Boolean;
      AutoincIncrement:      Int64;

   newAutoincLastValue:      Boolean;
      AutoincLastValue:      Int64;

   newAutoincMinValue:       Boolean;
      AutoincMinValue:       Int64;

   newAutoincMaxValue:       Boolean;
      AutoincMaxValue:       Int64;

   newAutoincCycled:         Boolean;
      AutoincCycled:         Boolean;

   // Blob settings
   newBlobBlockSize:         Boolean;
      BlobBlockSize:         Integer; // 1..

   newBlobCompressionAlgorithm: Boolean;
      BlobCompressionAlgorithm: TMYLDBCompressionAlgorithm;// {NONE | ZLIB | BZIP | PPM}

   newBlobCompressionMode:   Boolean;
      BlobCompressionMode:   Byte; //     {0 .. 9}

   //Default Value
   newDefaultValue:          Boolean;
      DefaultValue:          TMYLDBVariant;

   newMinValue:              Boolean;
      MinValue:              TMYLDBVariant;

   newMaxValue:              Boolean;
      MaxValue:              TMYLDBVariant;

   newPrimaryKey:            Boolean;
      PrimaryKey:            Boolean;

   newUnique:                Boolean;
      Unique:                Boolean;

  public
   constructor Create;
   destructor Destroy; override;
 end;


 TSQLFieldDefs = class (TObject)
  protected
   List: TList;
   function GetDef(Index: Integer): TSQLFieldDef;
  public
   constructor Create;
   destructor Destroy; override;
   function AddCreated: TSQLFieldDef;
   function GetCount: Integer;
  public
   property Items[Index: Integer]: TSQLFieldDef read GetDef; default;
   property Count: Integer read GetCount;
 end;


 TMYLDBIndexField = record
   FieldName: string;       // field name or pseudonym
   desc:      boolean;      // desc/asc
   nocase:    boolean;      // ncase/case sensitive
 end;

 TMYLDBIndex = record
   IndexName:       String;
   Unique:          Boolean;
   Primary:         Boolean;
   IndexFields:     array of TMYLDBIndexField; // Index Fields
 end;


 TMYLDBDDLTableManipulation = class (TMYLDBSQLCommand)
  protected
   Password:              String;  // table password
   DatabaseName:          String;  // DB Name
   TableName:             String;  // Table Name
   TableAlias:            String;  // Table Pseudonym
   SQLFieldDefs:          TSQLFieldDefs; // SQLFieldDefs
   //PrimaryIndexName:      String;
   //PrimaryKey:            TStringList;
   //PrimaryKeyFields:      array of TMYLDBIndexField;
   //UniqueFields:          TStringList;
   Indexes:               array of TMYLDBIndex;

   // table element list
   procedure ParseTableElementList;
   // parse TableName token
   procedure ParseTableNameToken;
   // Fill table column type into Structure
   procedure FillColumnType(var FieldDef:TSQLFieldDef);
   // Fill column requared value into Structure
   procedure ParseColumnRequared(var FieldDef:TSQLFieldDef);
   // parse PASSWORD 'aaa'
   procedure ParsePassword;
   // parse DEFAULT {const | NULL}
   function ParseDefaultValue(var FieldDef:TSQLFieldDef): Boolean;
   // parse MINVALUE value
   function ParseMinValue(var FieldDef:TSQLFieldDef): Boolean;
   // parse MAXVALUE value
   function ParseMaxValue(var FieldDef:TSQLFieldDef): Boolean;
   // parse fiald ... PRIMARY KEY
   function ParseFieldPrimaryKey(var FieldDef:TSQLFieldDef): Boolean;
   // parse fiald ... UNIQUE
   function ParseFieldUnique(var FieldDef:TSQLFieldDef): Boolean;

   // parse Primary Key
   function ParsePrimaryKey: boolean;
   // parse Index
   function ParseIndex: boolean;
   // parse Index Field
   procedure ParseIndexField(IndexNo: Integer);
   // parse Index Fields
   procedure ParseIndexFields(IndexNo: Integer);
   // go to the Next token and Parse Integer (Int64)
   function ParseInteger: Int64;
   // Create MYLDBTable object and fill MYLDBTable params
   procedure CreateInternalMYLDBTable(query: TDataSet; var table: TDataSet;
                            var db: TObject; FillAdvFieldDefs: Boolean);
   // Fill AdvFieldDef
   procedure FillAdvFieldDef(AdvFieldDef: TFieldDef; SQLFieldDef: TSQLFieldDef);
   // Add Indexes to MYLDBTable
   procedure AddIndexes(T: TDataSet);
   // Add Primary Key into MYLDBTable
   //procedure AddPrimaryKey(T: TDataSet);
   // Add UNIQUE constraint and index into MYLDBTable
   //procedure AddUnique(T: TDataSet);
   // Delete PrimaryKey
   procedure DeletePrimaryKey(T: TDataSet);
  public
   // creates object
   constructor Create(Lexer: TMYLDBLexer; Query: TDataSet);
   // destroy
   destructor Destroy; override;
   // parses query
   procedure Parse; override;
   // executes query
   procedure ExecSQL(
                      query: TDataset;
                      IsRoot,
                      RequestLive: boolean;
                      var ReadOnly: boolean;
                      ParentQueryAO: TMYLDBAO = nil;
                      ParentCursor: TMYLDBCursor = nil
                     ); override; abstract;
 end;//TMYLDBDDLTableManipulation




////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBDDLCreateTable
//
////////////////////////////////////////////////////////////////////////////////



 TMYLDBDDLCreateTable = class (TMYLDBDDLTableManipulation)
  private
   FCreateIfNotExists: Boolean;
  protected
   // Create Table
   procedure CreateTable(query: TDataSet);
  public
   // parses query
   procedure Parse; override;
   // executes query
   procedure ExecSQL(
                      query: TDataset;
                      IsRoot,
                      RequestLive: boolean;
                      var ReadOnly: boolean;
                      ParentQueryAO: TMYLDBAO = nil;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区三区入口| 国产精品一区二区三区99| jlzzjlzz欧美大全| 国产精品素人一区二区| 成人网男人的天堂| 中文字幕在线播放不卡一区| av亚洲精华国产精华精| 综合久久久久久久| 欧美日韩久久一区| 激情五月婷婷综合网| 国产午夜亚洲精品羞羞网站| 国产 欧美在线| 一区二区视频在线| 日韩欧美色综合| 成年人午夜久久久| 亚洲成人动漫在线观看| 久久久久久一二三区| 不卡的电视剧免费网站有什么| 亚洲精品日日夜夜| 欧美电影免费观看高清完整版 | 7777精品伊人久久久大香线蕉| 亚洲电影激情视频网站| 日韩欧美在线观看一区二区三区| 国产一区不卡视频| 一区二区三区国产精品| 欧美一级二级三级蜜桃| 97超碰欧美中文字幕| 蜜臀精品一区二区三区在线观看| 国产欧美日韩另类一区| 欧美手机在线视频| 国产精品白丝av| 一区二区三区欧美日| 精品少妇一区二区三区日产乱码 | 亚洲女人小视频在线观看| 777奇米四色成人影色区| 成人综合在线观看| 久久精品国产免费| 一区二区三区四区在线播放 | 亚洲国产成人在线| 欧美日韩电影一区| av在线一区二区| 蜜桃精品在线观看| 尤物在线观看一区| 欧美国产1区2区| 日韩一区二区三区四区| 色悠久久久久综合欧美99| 国模冰冰炮一区二区| 婷婷激情综合网| 亚洲精品一二三四区| 国产香蕉久久精品综合网| 日韩一区国产二区欧美三区| 色哟哟日韩精品| 成人黄色免费短视频| 久久成人精品无人区| 水野朝阳av一区二区三区| 亚洲激情中文1区| 国产农村妇女毛片精品久久麻豆 | 91玉足脚交白嫩脚丫在线播放| 精品在线视频一区| 婷婷一区二区三区| 一区二区三区资源| 中文字幕一区二区三| 久久久www成人免费无遮挡大片| 在线不卡一区二区| 91久久国产最好的精华液| 不卡的电影网站| 粉嫩欧美一区二区三区高清影视| 久久99这里只有精品| 免费成人av在线播放| 亚洲v中文字幕| 婷婷久久综合九色综合伊人色| 亚洲综合丁香婷婷六月香| 亚洲欧美日韩精品久久久久| 成人免费在线观看入口| 亚洲欧洲精品天堂一级| 亚洲欧洲精品天堂一级| 中文字幕一区不卡| 亚洲欧美偷拍三级| 一区二区三区免费| 亚洲成av人片一区二区三区| 亚洲综合区在线| 午夜精品福利一区二区三区av | 久久99国内精品| 韩国女主播成人在线观看| 国产电影一区二区三区| 成人高清av在线| 欧美视频在线不卡| 欧美色图第一页| 6080日韩午夜伦伦午夜伦| 日韩午夜av电影| 久久久久久久久久久黄色| 欧美国产亚洲另类动漫| 亚洲男同1069视频| 亚洲高清免费视频| 久久狠狠亚洲综合| 懂色一区二区三区免费观看| 91一区二区在线| 91麻豆精品91久久久久同性| 日韩一级免费观看| 久久久久久久国产精品影院| 中文字幕的久久| 亚洲国产日韩精品| 国产自产视频一区二区三区| 成人免费看视频| 欧美日韩视频在线第一区| 欧美成人性福生活免费看| 国产欧美日韩另类视频免费观看| 亚洲精品成人在线| 麻豆freexxxx性91精品| 成人av高清在线| 91精品国产一区二区三区香蕉| 精品久久久三级丝袜| 亚洲欧洲成人精品av97| 日韩国产成人精品| 成人免费视频一区| 欧美日韩国产一二三| 久久人人爽爽爽人久久久| 亚洲免费观看高清在线观看| 青椒成人免费视频| 色综合天天综合色综合av | 韩日欧美一区二区三区| 91视频国产观看| 精品久久久网站| 亚洲国产精品综合小说图片区| 久久99国产精品免费| 国产乱码精品一区二区三区五月婷| 亚洲国产一区在线观看| 国产成人精品免费视频网站| 欧美色图免费看| 国产精品的网站| 久久福利视频一区二区| 色婷婷精品久久二区二区蜜臀av | 91麻豆自制传媒国产之光| 日韩欧美色综合网站| 一区二区三区国产精品| 国产精品一二一区| 91精品国产免费久久综合| 国产精品久久久久久久久久久免费看| 日韩精品久久久久久| 色综合久久久久综合99| 国产欧美日韩在线| 久久爱另类一区二区小说| 欧美日韩三级在线| 亚洲精品国产高清久久伦理二区| 国产伦理精品不卡| 日韩免费观看2025年上映的电影| 亚洲午夜三级在线| 91久久久免费一区二区| 最新热久久免费视频| 国产精选一区二区三区| 日韩欧美色综合| 日本aⅴ免费视频一区二区三区| 在线视频欧美精品| 亚洲色欲色欲www在线观看| 国产高清成人在线| 久久女同精品一区二区| 蜜臀av性久久久久av蜜臀妖精| 精品婷婷伊人一区三区三| 亚洲欧美电影一区二区| 成人97人人超碰人人99| 国产精品美女久久久久久2018| 福利91精品一区二区三区| 欧美国产激情二区三区| 成人午夜视频免费看| 国产调教视频一区| 国产成人综合在线观看| 欧美国产精品专区| 福利一区在线观看| 成人免费小视频| 色综合久久久久综合体| 一区二区三区.www| 欧美午夜寂寞影院| 亚洲bdsm女犯bdsm网站| 在线成人av网站| 久久精品免费看| 精品福利一区二区三区| 国产v日产∨综合v精品视频| 国产蜜臀av在线一区二区三区| 成人性生交大片免费看中文| 日韩一区日韩二区| 一本到高清视频免费精品| 亚洲午夜电影在线观看| 91精品国产综合久久久久| 九一久久久久久| 日本一区二区成人在线| 91亚洲精品一区二区乱码| 亚洲国产中文字幕| 亚洲精品一区二区三区福利| 国产精品99久久久久久有的能看| 国产精品久久毛片| 日本久久电影网| 蜜臀a∨国产成人精品| 国产人成亚洲第一网站在线播放| aaa国产一区| 天天色 色综合| 久久一二三国产| 色综合久久久久综合| 日本伊人色综合网| 国产欧美一区二区在线| 欧美性猛片aaaaaaa做受|