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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? myldbconverts.pas

?? 一個(gè)本地database引擎,支持中文T_Sql查詢,兼容DELPHI標(biāo)準(zhǔn)數(shù)據(jù)庫控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號(hào):
unit MYLDBConverts;

interface

{$I MYLDBVer.inc}

uses SysUtils, {Controls,} DB, Windows,
     MYLDBTypes,
     MYLDBStrUtils,
     MYLDBExcept,
     MYLDBConst;

const
  WildCardMultipleChar = '%';
  WildCardSingleChar = '_';

type
  TSQLFieldType = packed record
    SqlName: String;
    AdvancedFieldType: TMYLDBAdvancedFieldType;
    BaseFieldType: TMYLDBBaseFieldType;
    FieldType: TFieldType;
  end;
const
  SQLFieldTypes: array[1..62] of TSQLFieldType = (

    (SqlName: 'CHAR';           AdvancedFieldType: aftChar;           BaseFieldType: bftChar;         FieldType: ftFixedChar),
    (SqlName: 'FIXEDCHAR';      AdvancedFieldType: aftChar;           BaseFieldType: bftChar;         FieldType: ftFixedChar),
    (SqlName: 'STRING';         AdvancedFieldType: aftString;         BaseFieldType: bftVarchar;      FieldType: ftString),
    (SqlName: 'VARCHAR';        AdvancedFieldType: aftString;         BaseFieldType: bftVarchar;      FieldType: ftString),
    (SqlName: 'VARCHAR2';       AdvancedFieldType: aftString;         BaseFieldType: bftVarchar;      FieldType: ftString),
    (SqlName: 'WIDECHAR';       AdvancedFieldType: aftWideChar;       BaseFieldType: bftWideChar;     FieldType: ftWideString),
    (SqlName: 'FIXEDWIDECHAR';  AdvancedFieldType: aftWideChar;       BaseFieldType: bftWideChar;     FieldType: ftWideString),
    (SqlName: 'WIDESTRING';     AdvancedFieldType: aftWideString;     BaseFieldType: bftWideVarchar;  FieldType: ftWideString),
    (SqlName: 'WIDEVARCHAR';    AdvancedFieldType: aftWideString;     BaseFieldType: bftWideVarchar;  FieldType: ftWideString),

    (SqlName: 'SMALLINT';       AdvancedFieldType: aftSmallint;       BaseFieldType: bftSignedInt16;  FieldType: ftSmallint),
    (SqlName: 'SIGNEDINT16';    AdvancedFieldType: aftSmallint;       BaseFieldType: bftSignedInt16;  FieldType: ftSmallint),
    (SqlName: 'SHORTINT';       AdvancedFieldType: aftShortint;       BaseFieldType: bftSignedInt8;   FieldType: ftSmallint),
    (SqlName: 'SIGNEDINT8';     AdvancedFieldType: aftShortint;       BaseFieldType: bftSignedInt8;   FieldType: ftSmallint),
    (SqlName: 'INTEGER';        AdvancedFieldType: aftInteger;        BaseFieldType: bftSignedInt32;  FieldType: ftInteger),
    (SqlName: 'SIGNEDINT32';    AdvancedFieldType: aftInteger;        BaseFieldType: bftSignedInt32;  FieldType: ftInteger),
    (SqlName: 'LARGEINT';       AdvancedFieldType: aftLargeint;       BaseFieldType: bftSignedInt64;  FieldType: ftLargeint),
    (SqlName: 'INT64';          AdvancedFieldType: aftLargeint;       BaseFieldType: bftSignedInt64;  FieldType: ftLargeint),
    (SqlName: 'SIGNEDINT64';    AdvancedFieldType: aftLargeint;       BaseFieldType: bftSignedInt64;  FieldType: ftLargeint),
    (SqlName: 'WORD';           AdvancedFieldType: aftWord;           BaseFieldType: bftUnsignedInt16;FieldType: ftWord),
    (SqlName: 'UNSIGNEDINT16';  AdvancedFieldType: aftWord;           BaseFieldType: bftUnsignedInt16;FieldType: ftWord),
    (SqlName: 'BYTE';           AdvancedFieldType: aftByte;           BaseFieldType: bftUnsignedInt8; FieldType: ftWord),
    (SqlName: 'UNSIGNEDINT8';   AdvancedFieldType: aftByte;           BaseFieldType: bftUnsignedInt8; FieldType: ftWord),
    (SqlName: 'CARDINAL';       AdvancedFieldType: aftCardinal;       BaseFieldType: bftUnsignedInt32;FieldType: ftLargeint),
    (SqlName: 'UNSIGNEDINT32';  AdvancedFieldType: aftCardinal;       BaseFieldType: bftUnsignedInt32;FieldType: ftLargeint),

    (SqlName: 'AUTOINC';        AdvancedFieldType: aftAutoInc;        BaseFieldType: bftSignedInt32;  FieldType: ftAutoInc),
    (SqlName: 'AUTOINCSHORTINT';AdvancedFieldType: aftAutoIncShortint;BaseFieldType: bftSignedInt8;   FieldType: ftAutoInc),
    (SqlName: 'AUTOINCSMALLINT';AdvancedFieldType: aftAutoIncSmallint;BaseFieldType: bftSignedInt16;  FieldType: ftAutoInc),
    (SqlName: 'AUTOINCINTEGER'; AdvancedFieldType: aftAutoIncInteger; BaseFieldType: bftSignedInt32;  FieldType: ftAutoInc),
    (SqlName: 'AUTOINCLARGEINT';AdvancedFieldType: aftAutoIncLargeint;BaseFieldType: bftSignedInt64;  FieldType: ftLargeint),
    (SqlName: 'AUTOINCBYTE';    AdvancedFieldType: aftAutoIncByte;    BaseFieldType: bftUnsignedInt8; FieldType: ftAutoInc),
    (SqlName: 'AUTOINCWORD';    AdvancedFieldType: aftAutoIncWord;    BaseFieldType: bftUnsignedInt16;FieldType: ftAutoInc),
    (SqlName: 'AUTOINCCARDINAL';AdvancedFieldType: aftAutoIncCardinal;BaseFieldType: bftUnsignedInt32;FieldType: ftAutoInc),

    (SqlName: 'FLOAT';          AdvancedFieldType: aftDouble;         BaseFieldType: bftDouble;       FieldType: ftFloat),
    (SqlName: 'FLOAT';          AdvancedFieldType: aftDouble;         BaseFieldType: bftDouble;       FieldType: ftBCD),
    (SqlName: 'SINGLE';         AdvancedFieldType: aftSingle;         BaseFieldType: bftSingle;       FieldType: ftFloat),
    (SqlName: 'DOUBLE';         AdvancedFieldType: aftDouble;         BaseFieldType: bftDouble;       FieldType: ftFloat),
    (SqlName: 'EXTENDED';       AdvancedFieldType: aftExtended;       BaseFieldType: bftExtended;     FieldType: ftFloat),

    (SqlName: 'LOGICAL';        AdvancedFieldType: aftBoolean;        BaseFieldType: bftLogical;      FieldType: ftBoolean),
    (SqlName: 'BOOLEAN';        AdvancedFieldType: aftBoolean;        BaseFieldType: bftLogical;      FieldType: ftBoolean),
    (SqlName: 'BOOL';           AdvancedFieldType: aftBoolean;        BaseFieldType: bftLogical;      FieldType: ftBoolean),
    (SqlName: 'BIT';            AdvancedFieldType: aftBoolean;        BaseFieldType: bftLogical;      FieldType: ftBoolean),

    (SqlName: 'CURRENCY';        AdvancedFieldType: aftCurrency;      BaseFieldType: bftCurrency;     FieldType: ftCurrency),
    (SqlName: 'MONEY';          AdvancedFieldType: aftCurrency;      BaseFieldType: bftCurrency;     FieldType: ftCurrency),

    (SqlName: 'DATE';            AdvancedFieldType: aftDate;          BaseFieldType: bftDate;         FieldType: ftDate),
    (SqlName: 'TIME';            AdvancedFieldType: aftTime;          BaseFieldType: bftTime;         FieldType: ftTime),
    (SqlName: 'DATETIME';        AdvancedFieldType: aftDateTime;      BaseFieldType: bftDateTime;     FieldType: ftDateTime),
{$IFDEF D6H}
    (SqlName: 'TIMESTAMP';       AdvancedFieldType: aftTimeStamp;     BaseFieldType: bftDateTime;     FieldType: ftTimeStamp),
{$ELSE}
    (SqlName: 'TIMESTAMP';       AdvancedFieldType: aftTimeStamp;     BaseFieldType: bftDateTime;     FieldType: ftUnknown),
{$ENDIF}

    (SqlName: 'BYTES';           AdvancedFieldType: aftBytes;         BaseFieldType: bftBytes;        FieldType: ftBytes),
    (SqlName: 'VARBYTES';        AdvancedFieldType: aftVarBytes;      BaseFieldType: bftVarBytes;     FieldType: ftVarBytes),

    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftBlob),
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftParadoxOle),
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftTypedBinary),
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftDBaseOle),
{$IFDEF D5H}
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftOraBlob),
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftOraClob),
{$ELSE}
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftUnknown),
    (SqlName: 'BLOB';            AdvancedFieldType: aftBlob;          BaseFieldType: bftBlob;         FieldType: ftUnknown),
{$ENDIF}
    (SqlName: 'GRAPHIC';         AdvancedFieldType: aftGraphic;       BaseFieldType: bftBlob;         FieldType: ftGraphic),
    (SqlName: 'MEMO';            AdvancedFieldType: aftMemo;          BaseFieldType: bftClob;         FieldType: ftMemo),
    (SqlName: 'CLOB';            AdvancedFieldType: aftMemo;          BaseFieldType: bftClob;         FieldType: ftMemo),
    (SqlName: 'FORMATTEDMEMO';   AdvancedFieldType: aftFormattedMemo; BaseFieldType: bftClob;         FieldType: ftFmtMemo),
    (SqlName: 'WIDEMEMO';        AdvancedFieldType: aftWideMemo;      BaseFieldType: bftWideClob;     FieldType: ftBlob),
    (SqlName: 'WIDECLOB';        AdvancedFieldType: aftWideMemo;      BaseFieldType: bftWideClob;     FieldType: ftMemo),
{$IFDEF D5H}
    (SqlName: 'GUID';            AdvancedFieldType: aftGuid;          BaseFieldType: bftChar;         FieldType: ftGuid)
{$ELSE}
    (SqlName: 'GUID';            AdvancedFieldType: aftGuid;          BaseFieldType: bftChar;         FieldType: ftUnknown)
{$ENDIF}
  );

  // Convert AdvancedFieldType to BasicFieldType
  function AdvancedFieldTypeToBaseFieldType(AdvancedFieldType: TMYLDBAdvancedFieldType): TMYLDBBaseFieldType;
  // Convert BaseFieldType to AdvancedFieldType
  function BaseFieldTypeToAdvancedFieldType(BaseFieldType: TMYLDBBaseFieldType): TMYLDBAdvancedFieldType;

  // Converts TFieldType to TMYLDBAdvancedFieldType
  function FieldTypeToMYLDBAdvFieldType(FieldType: TFieldType): TMYLDBAdvancedFieldType;
  // Converts TMYLDBAdvancedFieldType to TFieldType
  function MYLDBAdvFieldTypeToFieldType(AdvancedFieldType: TMYLDBAdvancedFieldType): TFieldType;

  // AdvancedFieldType for print
  function AftToStr(AdvancedFieldType: TMYLDBAdvancedFieldType): String;
  // TypeName to TMYLDBAdvancedFieldType
  function StrToAft(TypeName: String): TMYLDBAdvancedFieldType;
  // BaseFieldType for print
  function BftToStr(BaseFieldType: TMYLDBBaseFieldType): String;
  // FieldType for print
  function FtToStr(FieldType: TFieldType): String;


  // Convert MYLDBDate to Date
  function MYLDBDateToDate(MYLDBDate: TMYLDBDate): TDateTime; overload;
  // Convert Date to MYLDBDate
  function DateToMYLDBDate(Date: TDateTime): TMYLDBDate; overload;

  // Convert MYLDBTime to Time
  function MYLDBTimeToTime(MYLDBTime: TMYLDBTime): TDateTime; overload;
  // Convert Time to MYLDBTime
  function TimeToMYLDBTime(Time: TDateTime): TMYLDBTime; overload;

  // Convert MYLDBDateTime to DateTime
  function MYLDBDateTimeToDateTime(MYLDBDateTime: TMYLDBDateTime): TDateTime; overload;
  // Convert DateTime to MYLDBDateTime
  function DateTimeToMYLDBDateTime(DateTime: TDateTime): TMYLDBDateTime; overload;

  // return true if field type is a BLOB field type
  function IsBLOBFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsBLOBFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if field type is a string field type, but not wide string
  function IsStringFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsStringFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if field type is a wide string field type
  function IsWideStringFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsWideStringFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if field type is bytes field type
  function IsBytesFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsBytesFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if field type is Autoinc field type
  function IsAutoincFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if DataType is numeric
  function IsNumericFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsNumericFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if DataType is TateTime, Time, Date, TimeStamp
  function IsDateTimeFieldType(FieldType: TMYLDBBaseFieldType): Boolean; overload;
  function IsDateTimeFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean; overload;

  // return true if DataType is String, bytes, etc.
  function IsSizebleFieldType(FieldType: TMYLDBAdvancedFieldType): Boolean;

  // Result = Can cast this type
  function IsConvertableFieldType(FieldType: TMYLDBAdvancedFieldType): boolean;

  // Like '%_' compare for String
  function IsStrMatchPattern(StrPtr: PChar; PatternPtr: PChar; IsPatternEscaped: Boolean; EscapeChar: Char; bIgnoreCase:boolean): Boolean;
  // Like '%_' compare for WideString
  function IsWideStrMatchPattern(StrPtr: PWideChar; PatternPtr: PWideChar; IsPatternEscaped: Boolean; EscapeChar: WideChar; bIgnoreCase:boolean): Boolean;

  // SrcField.Value := DestField.Value
  procedure AssignField(SrcField, DestField: TField);

  // 'YYYY-MM-DD' => TDate
  function ISODateStrToDate(const DateStr: String; var Date: TDateTime): Boolean;
  // 'HH:MM:SS' => TTime
  function ISOTimeStrToTime(const TimeStr: String; var Time: TDateTime): Boolean;
  // 'YYYY-MM-DD HH:MM:SS' => TDateTime
  function ISOTimeStampStrToDateTime(const TimeStampStr: String; var DateTime: TDateTime): Boolean;

implementation

uses
{$IFDEF D6H}DateUtils,{$ELSE}MYLDBD4Routines,{$ENDIF}
Classes;

//------------------------------------------------------------------------------
// Convert AdvancedFieldType to BasicFieldType
//------------------------------------------------------------------------------
function AdvancedFieldTypeToBaseFieldType(AdvancedFieldType: TMYLDBAdvancedFieldType): TMYLDBBaseFieldType;
var i: Integer;
begin
  Result := bftUnknown;
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
    if SQLFieldTypes[i].AdvancedFieldType = AdvancedFieldType then
      begin
        Result := SQLFieldTypes[i].BaseFieldType;
        break;
      end;
end;//AdvancedFieldTypeToBasicFieldType


//------------------------------------------------------------------------------
// Convert BaseFieldType to AdvancedFieldType
//------------------------------------------------------------------------------
function BaseFieldTypeToAdvancedFieldType(BaseFieldType: TMYLDBBaseFieldType): TMYLDBAdvancedFieldType;
var i: Integer;
begin
  Result := aftUnknown;
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
    if SQLFieldTypes[i].BaseFieldType = BaseFieldType then
      begin
        Result := SQLFieldTypes[i].AdvancedFieldType;
        break;
      end;
end;//BaseFieldTypeToAdvancedFieldType


//------------------------------------------------------------------------------
// Converts TFieldType to TMYLDBAdvancedFieldType
//------------------------------------------------------------------------------
function FieldTypeToMYLDBAdvFieldType(FieldType: TFieldType): TMYLDBAdvancedFieldType;
var i: Integer;
begin
  Result := aftUnknown;
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
    if SQLFieldTypes[i].FieldType = FieldType then
      begin
        Result := SQLFieldTypes[i].AdvancedFieldType;
        break;
      end;
  if (Result = aftUnknown) then
    raise EMYLDBException.Create(30289, ErrorGUnknownDataType,
                               [IntToStr(Integer(FieldType))]);
end;//FieldTypeToMYLDBAdvFieldType


//------------------------------------------------------------------------------
// Converts TMYLDBAdvancedFieldType to TFieldType
//------------------------------------------------------------------------------
function MYLDBAdvFieldTypeToFieldType(AdvancedFieldType: TMYLDBAdvancedFieldType): TFieldType;
var i: Integer;
begin
  Result := ftUnknown;
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
    if SQLFieldTypes[i].AdvancedFieldType = AdvancedFieldType then
      begin
        Result := SQLFieldTypes[i].FieldType;
        break;
      end;
end;//MYLDBAdvFieldTypeToFieldType


//------------------------------------------------------------------------------
// AdvancedFieldType for print
//------------------------------------------------------------------------------
function AftToStr(AdvancedFieldType: TMYLDBAdvancedFieldType): String;
var i: Integer;
begin
  Result := 'Unknown';
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
    if SQLFieldTypes[i].AdvancedFieldType = AdvancedFieldType then
      begin
        Result := SQLFieldTypes[i].SqlName;
        break;
      end;
end;//AftToStr


//------------------------------------------------------------------------------
// TypeName to TMYLDBAdvancedFieldType
//------------------------------------------------------------------------------
function StrToAft(TypeName: String): TMYLDBAdvancedFieldType;
var
 i: Integer;
 u: String;
begin
  Result := aftUnknown;
  u := UpperCase(TypeName);
  for i:=Low(SQLFieldTypes) to High(SQLFieldTypes) do
   if ( UpperCase(SQLFieldTypes[i].SqlName) = u ) then
    begin
     Result := SQLFieldTypes[i].AdvancedFieldType;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频有精品| 欧美日韩精品一区二区天天拍小说| 国产精品久线在线观看| www.欧美色图| 亚洲在线一区二区三区| 欧美肥妇bbw| 国产在线精品免费| 国产精品另类一区| 欧美一a一片一级一片| 美女mm1313爽爽久久久蜜臀| 久久女同精品一区二区| 成人精品视频一区二区三区尤物| 亚洲欧美一区二区三区国产精品| 欧美日高清视频| 久久综合综合久久综合| 国产精品视频在线看| 色成人在线视频| 奇米777欧美一区二区| 国产人成一区二区三区影院| 91蜜桃视频在线| 日韩国产在线观看| 久久久www免费人成精品| 91在线免费播放| 三级欧美在线一区| 久久亚洲一级片| 色综合欧美在线视频区| 色哟哟国产精品| 日日摸夜夜添夜夜添亚洲女人| 精品国产乱码久久| 色婷婷久久久久swag精品| 青青草国产成人99久久| 欧美国产乱子伦| 欧美老年两性高潮| 懂色中文一区二区在线播放| 亚洲成人资源网| 国产喂奶挤奶一区二区三区| 在线亚洲一区观看| 国产精品自拍一区| 亚洲国产精品麻豆| 久久精品一区二区三区四区| 欧美午夜电影在线播放| 国产成人免费视频一区| 日韩中文字幕91| 国产精品高清亚洲| 日韩欧美国产电影| 色成年激情久久综合| 激情综合色播激情啊| 亚洲激情图片一区| 国产偷国产偷精品高清尤物| 欧美巨大另类极品videosbest | 国产精品久久久久久久久免费丝袜| 欧美日韩你懂得| 成人精品一区二区三区四区| 日韩av一区二| 亚洲精品日日夜夜| 久久精品一区八戒影视| 8x8x8国产精品| 91蜜桃免费观看视频| 国产福利一区二区三区视频| 五月婷婷综合激情| 最新久久zyz资源站| 欧美草草影院在线视频| 在线亚洲欧美专区二区| 福利视频网站一区二区三区| 日本不卡视频一二三区| 一个色在线综合| 国产精品美女久久久久久2018| 精品人在线二区三区| 欧美性猛交xxxx黑人交| 99久久精品国产导航| 国产一区二区不卡老阿姨| 日韩激情中文字幕| 一区二区三区在线视频免费| 国产精品少妇自拍| 亚洲精品一线二线三线| 9191成人精品久久| 欧美三级韩国三级日本三斤| 91免费在线视频观看| 成人综合在线网站| 国产一区福利在线| 麻豆精品视频在线观看| 亚洲成年人影院| 亚洲精品成a人| 国产精品国产三级国产aⅴ无密码| 久久综合国产精品| 亚洲精品一区二区三区影院| 欧美一卡二卡在线| 中文字幕日韩精品一区| 国产色婷婷亚洲99精品小说| 精品国产一区二区三区四区四| 欧美一区二区三区四区久久| 欧美日韩一卡二卡三卡 | 欧美激情一区二区三区| 日韩美一区二区三区| 91麻豆精品国产自产在线观看一区| 在线精品视频一区二区三四 | caoporm超碰国产精品| 国产福利一区二区三区在线视频| 国产麻豆午夜三级精品| 激情都市一区二区| 精品一区二区在线观看| 另类专区欧美蜜桃臀第一页| 奇米777欧美一区二区| 蜜桃av一区二区三区电影| 免费人成精品欧美精品 | 国产综合色精品一区二区三区| 久久av老司机精品网站导航| 久久精品国产第一区二区三区| 欧美a一区二区| 免费成人你懂的| 久久黄色级2电影| 国产一区二区三区高清播放| 国产精品99久久久久久久女警| 国产成人av一区二区三区在线观看| 国产精品一区免费视频| 国产福利一区二区三区视频在线 | 亚洲黄色免费网站| 一区二区三区高清| 樱花影视一区二区| 亚洲国产日韩精品| 日韩精品欧美精品| 美女视频一区二区三区| 精品在线亚洲视频| 国产激情视频一区二区在线观看 | 图片区小说区国产精品视频| 天天操天天色综合| 丝袜国产日韩另类美女| 久久精品国产亚洲高清剧情介绍| 国产乱码精品一区二区三区忘忧草| 久久爱www久久做| 成人毛片在线观看| 在线精品亚洲一区二区不卡| 69精品人人人人| 日韩精品中文字幕在线不卡尤物| 久久午夜国产精品| 国产精品动漫网站| 一区二区三区中文字幕| 天堂av在线一区| 国产在线国偷精品免费看| 北条麻妃一区二区三区| 精品视频在线看| 性做久久久久久免费观看| 另类小说一区二区三区| 成人动漫一区二区三区| 在线观看视频91| 日韩欧美中文字幕公布| 欧美经典一区二区三区| 亚洲精品日产精品乱码不卡| 日本亚洲天堂网| 成人性生交大片免费看中文| 色婷婷av一区二区三区之一色屋| 7777精品久久久大香线蕉| 久久久一区二区三区捆绑**| 最新不卡av在线| 日本女优在线视频一区二区 | 成人综合婷婷国产精品久久免费| 91丨porny丨首页| 91精品国产品国语在线不卡| 国产日产欧美精品一区二区三区| 亚洲伊人伊色伊影伊综合网| 精品一区在线看| 色综合久久久久综合体| 欧美成人猛片aaaaaaa| 国产精品国产自产拍高清av| 五月婷婷综合网| www.日韩大片| 欧美大片在线观看一区二区| 亚洲欧洲美洲综合色网| 日本成人中文字幕| 91在线你懂得| 精品不卡在线视频| 亚洲激情自拍偷拍| 国产精品一区三区| 欧美日韩国产综合久久 | 中文字幕巨乱亚洲| 天天综合色天天综合色h| 成人综合婷婷国产精品久久蜜臀| 欧美久久久久久蜜桃| 国产精品久久久久久久久动漫| 日本在线不卡视频| 91麻豆123| 久久久久久一二三区| 亚洲国产日产av| 本田岬高潮一区二区三区| 日韩一级高清毛片| 一区二区三区在线免费播放| 国内精品国产成人| 欧美精品一二三四| 综合激情网...| 国产高清亚洲一区| 91麻豆精品国产| 一区二区三区欧美亚洲| 国产福利91精品一区| 91精品国产欧美日韩| 亚洲日本青草视频在线怡红院| 国产精品中文字幕一区二区三区| 欧美久久久久久久久| 亚洲精品一二三| 成人av电影在线观看| 久久蜜桃av一区二区天堂|