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

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

?? plgplsql.spb

?? Oracle PL/SQL procedure generator (second generator type)
?? SPB
?? 第 1 頁 / 共 3 頁
字號:
CREATE OR REPLACE PACKAGE BODY PLGplsql
IS

/* PL/SQL Code Driver Foundation */

/*----------------------------------------------------------------
||                  PL/Generator from Quest Software
||----------------------------------------------------------------
||    File: PLGplsql.spb
||  Author: Steven Feuerstein
||
|| This is a part of the PL/Generator Code library.
|| Copyright (C) 1998-1999 Quest Software, Inc.
|| All rights reserved.
||
|| For more information, call Quest Software at 1-800-REVEAL4
|| or check out our Web page: www.Quest Software.com
||
------------------ Modification History --------------------------
|| Date     By     Description
||	-------- ------ -----------------------------------------------
|| 9/98     SEF    Created from plgte.spb
-----------------------------------------------------------------*/
   c_pkg CONSTANT CHAR(8) := 'PLGplsql';
   c_delim CONSTANT CHAR(1) := CHR(8);

   PROCEDURE setfiles
   IS
   BEGIN
--------------------START OF PRODUCTION driver SET-------------------------

      PLGdoir.defprepsrc (
         driver,
         'psprep.gdr',
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);

      PLGdoir.defdrvsrc (driver, 1, 'pssa.gdr',
         'Generates stand-alone programs around packaged programs',
         ftype => PLGdoir.c_ft_code,
         use_file => TRUE,
         tab => PLGdoir.c_global,
         sch => PLGdoir.c_global);
   END;

   PROCEDURE setidentifiers
   IS
   BEGIN
   /* Define the identifiers for this driver. The identifiers define the list
      of possible names on which you can set aliases. */

      /* Identifiers */

      --PLGdoir.set_progident (driver, 'NAME', 'CONSTRUCTION', 'DESCRIPTION');
      --PLGdoir.set_argident (driver, 'NAME', 'CONSTRUCTION', 'DESCRIPTION');

      /* Atomic naming units, such as "upd" */

      PLGdoir.set_ident (driver, 'sa_prefix', NULL,
         'Prefix placed in front of stand-alone programs');

      /* Define the tagged elements in the cgml for the driver */
      PLGdoir.set_tag (driver, 'objname', 'MYOBJ', 'Name of object');
   END;

   PROCEDURE setsrc
   IS
   BEGIN
      PLGdoir.setsrc (driver, 'ERRNUM', PLGdoir.c_driver_wide);
      PLGdoir.setsrc (driver, 'ERRMSG', PLGdoir.c_driver_wide);

      /* Define elements for the arrays */

      PLGdoir.set_array (driver, 'PROG', 
         doc=>'Array of programs defined in package or stand alone program');
      PLGdoir.set_array_tag (driver, 'PROG', 'pkgname', doc=>'The name of the package that contains this program, if applicable');
      PLGdoir.set_array_tag (driver, 'PROG', 'progname', doc=>'The name of the program');
      PLGdoir.set_array_tag (driver, 'PROG', 'progtype', doc=>'The type of program, PROCEDURE or FUNCTION');
      PLGdoir.set_array_tag (driver, 'PROG', 'isfunction', doc=>'True if program type is FUNCTION');
      PLGdoir.set_array_tag (driver, 'PROG', 'isprocedure', doc=>'True if program type is PROCEDURE');      
      PLGdoir.set_array_tag (driver, 'PROG', 'overload', doc=>'ber of the overloaded program (NULL if not overloaded)');
      PLGdoir.set_array_tag (driver, 'PROG', 'isoverloaded', doc=>'A Boolean field indicating whether or not this program is overloaded');
      PLGdoir.set_array_tag (driver, 'PROG', 'argcount', doc=>'The number of arguments in the program''s parameter list');
      PLGdoir.set_array_tag (driver, 'PROG', 'has_composite_arg', 
         doc=>'TRUE if at least one argument is a composite');
      PLGdoir.set_array_tag (driver, 'PROG', 'ret_data_type', 
         doc=>'Datatype of RETURN clause, if a function');
      PLGdoir.set_array_tag (driver, 'PROG', 'ret_has_composite', 
         doc=>'TRUE if RETURN clause has a composite, if a function');
      PLGdoir.set_array_tag (driver, 'PROG', 'ret_argcount', 
         doc=>'Number of arguments in the RETURN arguments array');

      PLGdoir.set_array (driver, 'ARG',
         doc=>'Array of arguments for programs - correlate with prog array');
      -- Any changes here, copy to RETARG...
      plgdoir.set_array_tag (driver, 'ARG', 'owner',doc=>'The schema that owns the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'ARG', 'object_name',doc=>'The name of the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'ARG', 'package_name',doc=>'The package that contains the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'ARG', 'object_id',doc=>'The ID or identifier for the object');
      plgdoir.set_array_tag (driver, 'ARG', 'overload',doc=>'The Nth overloaded program in which this argument appears, 0 if no overloading');
      plgdoir.set_array_tag (driver, 'ARG', 'position',doc=>'The position of the argument in the parameter list');
      plgdoir.set_array_tag (driver, 'ARG', 'data_level',doc=>'The level of the parameter; can be greater than one if part of a composite argument');
      plgdoir.set_array_tag (driver, 'ARG', 'argument_name',doc=>'The name of the argument');
      plgdoir.set_array_tag (driver, 'ARG', 'data_type',doc=>'The name of the datatype');
      plgdoir.set_array_tag (driver, 'ARG', 'default_value',doc=>'The default value for the argument, if any');
      plgdoir.set_array_tag (driver, 'ARG', 'default_length',doc=>'The default length');
      plgdoir.set_array_tag (driver, 'ARG', 'in_out',doc=>'The name of the argument mode (IN, OUT or IN OUT)');
      plgdoir.set_array_tag (driver, 'ARG', 'is_in',doc=>'True if argument mode is IN');
      plgdoir.set_array_tag (driver, 'ARG', 'is_in_out',doc=>'True if argument mode is IN OUT');
      plgdoir.set_array_tag (driver, 'ARG', 'is_out',doc=>'True if argument mode is OUT');
      plgdoir.set_array_tag (driver, 'ARG', 'data_length',doc=>'Length of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARG', 'data_precision',doc=>'Precision of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARG', 'data_scale',doc=>'Scale of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARG', 'radix',doc=>'Radix of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARG', 'is_composite',doc=>'TRUE if the argument is a composite type (record, collection, object, etc.)');
      plgdoir.set_array_tag (driver, 'ARG', 'composite_name',doc=>'Fully qualified name of argument (a.b.c.d)');
      plgdoir.set_array_tag (driver, 'ARG', 'composite_type',doc=>'Type of composite argument');
      plgdoir.set_array_tag (driver, 'ARG', 'is_record',doc=>'TRUE if argument is a record');
      plgdoir.set_array_tag (driver, 'ARG', 'is_indexby_table',doc=>'TRUE if argument is an index by table');
      plgdoir.set_array_tag (driver, 'ARG', 'is_ref_cursor',doc=>'TRUE if argument is a a REF CURSOR/cursor variable');
      plgdoir.set_array_tag (driver, 'ARG', 'is_object',doc=>'TRUE if argument is an object');
      plgdoir.set_array_tag (driver, 'ARG', 'is_nested_table',doc=>'TRUE if argument is a nested table');
      plgdoir.set_array_tag (driver, 'ARG', 'is_varray',doc=>'TRUE if argument is a VARRAY');
         
      PLGdoir.set_array (driver, 'RETARG',
         doc=>'Array of arguments for RETURN clause of function');
      plgdoir.set_array_tag (driver, 'RETARG', 'owner',doc=>'The schema that owns the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'RETARG', 'object_name',doc=>'The name of the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'RETARG', 'package_name',doc=>'The package that contains the program in which this argument appears');
      plgdoir.set_array_tag (driver, 'RETARG', 'object_id',doc=>'The ID or identifier for the object');
      plgdoir.set_array_tag (driver, 'RETARG', 'overload',doc=>'The Nth overloaded program in which this argument appears, 0 if no overloading');
      plgdoir.set_array_tag (driver, 'RETARG', 'position',doc=>'The position of the argument in the parameter list');
      plgdoir.set_array_tag (driver, 'RETARG', 'data_level',doc=>'The level of the parameter; can be greater than one if part of a composite argument');
      plgdoir.set_array_tag (driver, 'RETARG', 'argument_name',doc=>'The name of the argument');
      plgdoir.set_array_tag (driver, 'RETARG', 'data_type',doc=>'The name of the datatype');
      plgdoir.set_array_tag (driver, 'RETARG', 'default_value',doc=>'The default value for the argument, if any');
      plgdoir.set_array_tag (driver, 'RETARG', 'default_length',doc=>'The default length');
      plgdoir.set_array_tag (driver, 'RETARG', 'in_out',doc=>'The name of the argument mode (IN, OUT or IN OUT)');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_in',doc=>'True if argument mode is IN');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_in_out',doc=>'True if argument mode is IN OUT');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_out',doc=>'True if argument mode is OUT');
      plgdoir.set_array_tag (driver, 'RETARG', 'data_length',doc=>'Length of the argument datatype');
      plgdoir.set_array_tag (driver, 'RETARG', 'data_precision',doc=>'Precision of the argument datatype');
      plgdoir.set_array_tag (driver, 'RETARG', 'data_scale',doc=>'Scale of the argument datatype');
      plgdoir.set_array_tag (driver, 'RETARG', 'radix',doc=>'Radix of the argument datatype');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_composite',doc=>'TRUE if the argument is a composite type (record, collection, object, etc.)');
      plgdoir.set_array_tag (driver, 'RETARG', 'composite_name',doc=>'Fully qualified name of argument (a.b.c.d)');
      plgdoir.set_array_tag (driver, 'RETARG', 'composite_type',doc=>'Type of composite argument');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_record',doc=>'TRUE if argument is a record');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_indexby_table',doc=>'TRUE if argument is an index by table');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_ref_cursor',doc=>'TRUE if argument is a a REF CURSOR/cursor variable');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_object',doc=>'TRUE if argument is an object');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_nested_table',doc=>'TRUE if argument is a nested table');
      plgdoir.set_array_tag (driver, 'RETARG', 'is_varray',doc=>'TRUE if argument is a VARRAY');
         
      /* Not currently in use...
      PLGdoir.set_array (driver, 'PROGSEP',
         doc=>'Array of separated programs (distinct overloadings) defined in package');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'pkgname', doc=>'The name of the package that contains this program, if applicable');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'progname', doc=>'The name of the program');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'progtype', doc=>'The type of program, PROCEDURE or FUNCTION');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'overload', doc=>'ber of the overloaded program (NULL if not overloaded)');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'isfunction', doc=>'TRUE if the program type is FUNCTION');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'argcount', doc=>'The number of arguments in the program''s parameter list');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'haveargs', doc=>'TRUE if there is at least one argument for the program');
      PLGdoir.set_array_tag (driver, 'PROGSEP', 'using_composites', doc=>'TRUE if the program uses a composite data type for an argument or return datatype');

      PLGdoir.set_array (driver, 'ARGSEP',
         doc=>'Array of arguments for programs - correlate with progsep array');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'overload',doc=>'The Nth overloaded program in which this argument appears, 0 if no overloading');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'position',doc=>'The position of the argument in the parameter list');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'level',doc=>'The level of the parameter; can be greater than one if part of a composite argument');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'argument_name',doc=>'The name of the argument');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'datatype',doc=>'The numeric code of the datatype of the argument');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'datatype_name',doc=>'The name of the datatype');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'default_value',doc=>'The default value for the argument, if any');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'in_out',doc=>'The argument mode (numeric value)');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'in_out_name',doc=>'The name of the argument mode (IN, OUT or IN OUT)');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_in',doc=>'True if argument mode is IN');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_in_out',doc=>'True if argument mode is IN OUT');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_out',doc=>'True if argument mode is OUT');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'length',doc=>'Length of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'precision',doc=>'Precision of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'scale',doc=>'Scale of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'radix',doc=>'Radix of the argument datatype');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_composite',doc=>'TRUE if the argument is a composite type (record, collection, object, etc.)');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'composite_name',doc=>'Fully qualified name of argument (a.b.c.d)');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'composite_type',doc=>'Type of composite argument');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_record',doc=>'TRUE if argument is a record');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_indexby_table',doc=>'TRUE if argument is an index by table');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_ref_cursor',doc=>'TRUE if argument is a a REF CURSOR/cursor variable');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_object',doc=>'TRUE if argument is an object');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_nested_table',doc=>'TRUE if argument is a nested table');
      plgdoir.set_array_tag (driver, 'ARGSEP', 'is_varray',doc=>'TRUE if argument is a VARRAY');
         
      PLGdoir.set_array (driver, 'ARGFROMSEP');
      */
      
      /* 
         Loop processing information: for offset loop, need a _START
         and _END value. This should be reworked!
      */

      PLGdoir.setdynvarchar2 (driver, 'ARG_START',
         'PLGgen.prog([\prog.currrow]).startrow');

      PLGdoir.setdynvarchar2 (driver, 'ARG_END',
         'PLGgen.prog([\prog.currrow]).endrow');

      PLGdoir.setdynvarchar2 (driver, 'ARGSEP_START',
         'PLGgen.progsep([\progsep.currrow]).startrow');

      PLGdoir.setdynvarchar2 (driver, 'ARGSEP_END',
         'PLGgen.progsep([\progsep.currrow]).endrow');

      PLGdoir.setdynvarchar2 (driver, 'RETARG_START',
         'PLGgen.prog([\prog.currrow]).ret_startrow');

      PLGdoir.setdynvarchar2 (driver, 'RETARG_END',
         'PLGgen.prog([\prog.currrow]).ret_endrow');

      /* Automatic with array...
      PLGdoir.setdynboolean (driver, 'HAVEARGS',
         'PLGgen.[\arrayname]([\currrow]).argcount > 0');
      */
      
      /* Program level information */

      /* NO LONGER IN USE - INFORMATION IN ARRAYS
      
      PLGdoir.setdynvarchar2 (driver, 'PROG_DATATYPE_NAME',
         'PLGplsql.convtype([objname],' ||
         'PLGdesc.g_datatype_names(PLGgen.progsep([\currrow]).datatype)');

      PLGdoir.setdynvarchar2 (driver, 'ORIG_PROG_DATATYPE_NAME',
         'PLGdesc.g_datatype_names(PLGgen.progsep([\currrow]).datatype)');

      PLGdoir.setdynvarchar2 (driver, 'PROG_DATATYPE_COMPOSITE_TYPE',
         'PLGplsql.composite_return (' ||
         '   [objname],' ||
         '   [progname],' ||
         '   PLGgen.progsep([\currrow]).overload,' ||
         '   [schema])');

      PLGdoir.setdynvarchar2 (driver, 'overload',
         'PLGadmin.ifelse(PLGgen.progsep([\progsep.currrow]).overload = 0, '''', ' ||
         'TO_CHAR(PLGgen.progsep([\progsep.currrow]).overload))');

      PLGdoir.setdynvarchar2 (driver, 'overload_NOT_NULL',
         'PLGgen.progsep([\progsep.currrow]).overload');

      PLGdoir.setdynboolean (driver, 'ISFUNCTION',
         'PLGgen.progsep([\progsep.currrow]).progtype = ''FUNCTION''');
      */
      
      PLGdoir.setdynboolean (driver, 'USING_COMPOSITES',
         'PLGplsql.using_composites([objname],[schema])');

      /* Argument-specific values. */

      PLGdoir.setdynvarchar2 (driver, 'TOPLSQL_VAL',
         'PLGplsql.toplsql_val(' ||
             '[schema],' ||
             '[objname],' ||
             'PLGgen.[\arrayname]([\currrow]).argument_name,' ||
             'PLGgen.[\arrayname]([\currrow]).datatype)');

      PLGdoir.setdynvarchar2 (driver, 'FROMPLSQL_VAL',
         'PLGplsql.fromplsql_val(' ||
             '[schema],' ||
             '[objname],' ||
             'PLGgen.[\arrayname]([\currrow]).argument_name,' ||
             'PLGgen.[\arrayname]([\currrow]).datatype)');

      PLGdoir.setdynvarchar2 (driver, 'IN_OUT_NAME',
         'PLGdesc.g_mode_names(PLGgen.argsep([\currrow]).in_out)');

      PLGdoir.setdynboolean (driver, 'IS_IN',
         'PLGgen.[\arrayname]([\currrow]).in_out = PLGdesc.c_in');

      PLGdoir.setdynboolean (driver, 'IS_IN_OUT',
         'PLGgen.[\arrayname]([\currrow]).in_out = PLGdesc.c_in_out');

      PLGdoir.setdynboolean (driver, 'IS_OUT',
         'PLGgen.[\arrayname]([\currrow]).in_out = PLGdesc.c_out');

      PLGdoir.setdynvarchar2 (driver, 'DATATYPE_NAME',

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费大片| 日本高清不卡视频| 99久久精品免费| 91麻豆精品国产91久久久久| 国产三级欧美三级日产三级99 | 91精品国产欧美一区二区| 国产精品入口麻豆九色| 日本三级亚洲精品| 在线免费精品视频| 国产精品免费丝袜| 激情五月激情综合网| 欧美日韩另类一区| 亚洲三级免费电影| 国产成人免费9x9x人网站视频| 欧美一级片在线看| 亚洲18色成人| 在线一区二区视频| 最新热久久免费视频| 国产精品一区三区| 久久久99精品免费观看不卡| 久久精品亚洲精品国产欧美kt∨| 欧美精品三级日韩久久| 欧美巨大另类极品videosbest| 国产日产精品一区| 精品影院一区二区久久久| 欧美亚男人的天堂| 日韩久久久精品| 亚洲美女区一区| 成人网页在线观看| 日韩免费高清视频| 欧美aⅴ一区二区三区视频| 色综合天天视频在线观看| 国产精品蜜臀在线观看| 九九九久久久精品| 91精品国产综合久久小美女| 亚洲人精品午夜| 粉嫩蜜臀av国产精品网站| 日韩精品一区二区三区视频播放| 亚洲综合小说图片| 91女神在线视频| 日本一区二区电影| 国产一区二区精品在线观看| 欧美肥妇free| 亚洲va欧美va天堂v国产综合| 丁香五精品蜜臀久久久久99网站| 69av一区二区三区| 亚洲综合无码一区二区| 懂色av一区二区三区蜜臀| 国产色91在线| 青娱乐精品视频| 欧美一区二区三区在线看| 亚洲成a人片在线观看中文| 在线亚洲一区二区| 亚洲桃色在线一区| 99久久精品国产毛片| 精品国产一区二区三区不卡| 麻豆精品一区二区av白丝在线| 欧美久久免费观看| 日韩精品视频网| 欧美一区二区三区小说| 天堂一区二区在线免费观看| 欧美日韩精品一区二区三区| 亚洲综合精品久久| 欧美视频一区在线| 亚洲成人精品影院| 欧美午夜精品久久久久久孕妇 | 久久精品国产99久久6| 欧美日韩亚洲综合在线| 日韩精品欧美成人高清一区二区| 91精品黄色片免费大全| 久久精品国产99| 久久蜜桃一区二区| 国产iv一区二区三区| 中文字幕免费不卡| 99久久精品免费看国产免费软件| 亚洲乱码国产乱码精品精的特点| 色老头久久综合| 午夜精品久久久久久久久| 欧美一级日韩免费不卡| 国产在线精品一区二区夜色| 久久久久久久久久久黄色| 国产成人在线视频免费播放| 亚洲国产激情av| 国产91精品欧美| 国产精品免费视频网站| 97精品视频在线观看自产线路二| 一区二区三区四区乱视频| 欧美日韩一区二区三区视频| 日韩av一二三| 久久久精品国产免费观看同学| 极品少妇xxxx精品少妇| 欧美国产国产综合| 91福利视频久久久久| 日韩精品欧美成人高清一区二区| 精品日韩一区二区| 不卡av免费在线观看| 亚洲国产一区二区视频| 欧美老女人在线| 久久99国产精品麻豆| 亚洲丝袜美腿综合| 欧美日韩一区二区三区免费看 | 国产精品久久一级| 欧美日韩久久久一区| 久久国产精品99精品国产| 日本一区二区视频在线观看| 色欧美日韩亚洲| 欧美aaa在线| 久久婷婷成人综合色| 色综合av在线| 久久精品久久99精品久久| 国产精品美女久久久久久久| 精品视频色一区| 国产一区二区免费在线| 亚洲精品久久嫩草网站秘色| 欧美一二三区在线观看| 成人国产视频在线观看| 午夜久久久影院| 国产精品欧美一区喷水| 欧美精品一二三| 激情综合色综合久久综合| 亚洲精品成人少妇| 久久亚洲精精品中文字幕早川悠里 | 91捆绑美女网站| 卡一卡二国产精品| 亚洲狠狠丁香婷婷综合久久久| 欧美大尺度电影在线| 91蜜桃在线免费视频| 蜜臀av一区二区三区| 自拍偷自拍亚洲精品播放| 欧美一级生活片| 91福利视频在线| 国产99久久久国产精品潘金网站| 亚洲成av人在线观看| 国产精品三级av| 精品欧美一区二区久久| 92国产精品观看| 国内外成人在线| 天天综合日日夜夜精品| 亚洲欧美在线观看| 欧美精品一区二区三区在线| 国产福利一区在线| 亚洲精品免费电影| 精品美女一区二区| 欧美自拍偷拍一区| 高清免费成人av| 老司机精品视频导航| 一区二区三区精品视频在线| 久久精品欧美一区二区三区不卡| 欧美日韩成人综合在线一区二区| av影院午夜一区| 国产剧情一区在线| 人人超碰91尤物精品国产| 亚洲综合999| 国产亚洲一区二区三区| 欧美怡红院视频| 色成年激情久久综合| 成人sese在线| 国产成人av福利| 精品一区二区三区在线观看 | 97精品电影院| 不卡视频一二三四| 国产大陆精品国产| 懂色一区二区三区免费观看| 国模大尺度一区二区三区| 国产呦精品一区二区三区网站| 日本在线不卡视频一二三区| 全部av―极品视觉盛宴亚洲| 天堂一区二区在线免费观看| 国产精品久久久久久一区二区三区| 一本一道久久a久久精品综合蜜臀| 成人午夜短视频| 成人视屏免费看| 一道本成人在线| 91精彩视频在线| 欧美日韩国产小视频| 欧美日韩免费视频| 欧美一区二区日韩一区二区| 欧美疯狂做受xxxx富婆| 欧美在线视频全部完| 欧美综合亚洲图片综合区| av电影在线不卡| 在线国产电影不卡| 99久久er热在这里只有精品15 | 亚洲欧美日韩在线| 亚洲一区二区三区激情| 亚洲愉拍自拍另类高清精品| 午夜伊人狠狠久久| 日韩av电影天堂| 国产黑丝在线一区二区三区| 国产91精品入口| 欧美专区亚洲专区| 欧美疯狂性受xxxxx喷水图片| 欧美videos大乳护士334| 欧美精品一区男女天堂| 国产精品久久久久久久久免费丝袜 | 国产91清纯白嫩初高中在线观看 | 26uuu亚洲综合色欧美| 久久久久久久综合狠狠综合| 久久久综合激的五月天| 成人免费在线观看入口|