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

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

?? udbm.pas

?? 數據庫通用工具
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit Udbm;

interface

uses
  Windows, SysUtils, Classes, DB, ADODB, Forms, DBTables, IniFiles, Registry,
  ShellAPI, Math;

type
  TDatabaseParam = Record
    ServerIP,
    ServerName,
    ODBCName,
    sPort,
    DatabaseName,
    UserName,
    Password : String;
  end;

  PassType = record
    PassCode: string;
    FileType: string;
    FileTime: TDateTime;
  end;
  
  Tdbm = class(TDataModule)
    adocLink: TADOConnection;
    dbODBCMySQL: TDatabase;
    qryPubMySQL: TQuery;
    dbDB2: TDatabase;
    qryPubDB2: TQuery;
    dbSQLServer: TDatabase;
    qryPubSQL: TQuery;
    adoQPub: TADOQuery;
    ADOTable1: TADOTable;
    Table1: TTable;
    Table2: TTable;
    Table3: TTable;
    procedure DataModuleCreate(Sender: TObject);
    function linkMySQL( sODBC,sDBName,sUser,sPass : string ):boolean;
    function connectMySQLDB():boolean;
    function testDBMySQLLink( bShowSet: Boolean = True ):Boolean;
    procedure listODBCs( sl : TStrings );
    function linkADOAccess( sPathName: string; mdbPass : string; mdbUser : string='admin' ) : boolean;
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function getFieldTypeSQL( sDPName : string ) : string;
  function getFieldTypeMySQL( sDPName : string ) : string;
  function getFieldTypeAccess( sDPName : string ) : string;
  function getFieldTypeDB2( sDPName : string ) : string;
  function saveDatabaseParam( vDatabaseParam:TDatabaseParam; sKey : string ):Boolean;
  function getDatabaseParam( sKey : string ) : TDatabaseParam;
  function CreateOdbcMySQL(DateSourceName,Server,sPORT,sUser,sPWD,DataBase:String) : Integer;
  function ShowMSG( Text: string; Caption: string='提示'; Flags: Longint=MB_OK): Integer;
  procedure URLink(URL:string);
  function ExecAccessFile(FName: string): PassType;
  function FullString(Const Source,Seep:String; Const Number:Integer; Const bLeftAdd:Boolean=True ): String;
  
var
  dbm: Tdbm;
  appPath : string;
  sys32Path : string;
  databaseParam : TDatabaseParam;
  aPassWord : PassType;
  //----------------------------------------------------------------------------
  //用于Access數據庫解密
  InCode97: array[0..19] of byte =
  ($86, $FB, $EC, $37, $5D, $44, $9C, $FA, $C6, $5E,
    $28, $E6, $13, $00, $00, $00, $00, $00, $00, $00);

//  用戶密碼區域 }
//  UserCode8: array[0..9] of Word = //89年9月17日前
//  ($8B86, $345D, $2EC6, $C613, $E454, $02F5, $8477, $DFCF, $1134, $C592);
  UserCode: array[0..9] of Word = //89年9月17日后
  ($7B86, $C45D, $DEC6, $3613, $1454, $F2F5, $7477, $2FCF, $E134, $3592);
  
//2079-06-05前  [EC37  9CFA  28E6  8A60  7B36  DFB1  1343  B133  795B  7C2A ]
//2079-06-05后  [ED37  9DFA  29E6  8B60  7A36  DEB1  1243  B033  785B  7D2A ]
{ 固定密碼區域 }
  InhereCode: array[0..9] of Word =
  ($37EC, $FA9C, $E628, $608A, $367B, $B1DF, $4313, $33B1, $5B79, $2A7C);
  InhereCode2: array[0..9] of Word =
  ($37ED, $FA9D, $E629, $608B, $367A, $B1DE, $4312, $33B0, $5B78, $2A7D);

  arXlsBegin: array[0..5] of Word = ($809, 8, 0, $10, 0, 0);
  arXlsEnd: array[0..1] of Word = ($0A, 00);
  arXlsString: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
  arXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
  arXlsInteger: array[0..4] of Word = ($27E, 10, 0, 0, 0);
  arXlsBlank: array[0..4] of Word = ($201, 6, 0, 0, $17);
  //----------------------------------------------------------------------------
  
implementation

uses UrmCfgDBMySQL;

{$R *.dfm}

function ExecAccessFile(FName: string): PassType;
  function CovTime(FD: _FileTime): TDateTime;
  var
    TCT: _SystemTime;
    Tmp: _FileTime;
  begin
    FileTimeToLocalFileTime(FD, Tmp);
    FileTimeToSystemTime(Tmp, TCT);
    Result := SystemTimeToDateTime(TCT);
  end;

var
  BaseDate: DWord;
  PassCode: string;
  InhereArray: array[0..19] of Word;
  ReaderArray: array[0..19] of Word;
  Stream: TFileStream;
  i, n: integer;
  TP: TSearchRec;
  FT: TDateTime;
  WTime: TDateTime;
  WSec: DWord;
  M, S: string;
  Buf: array[0..200] of byte;
  Date0: TDateTime;
  Date1: TDateTime;
  Date2: TDateTime;
const
  XorStr = $823E6C94;
begin
  //use SysUtils
  if FindFirst(FName, faAnyFile, TP) = 0 then
    FindClose(TP);

  // awen add (保證釋放FindFile句柄和資源)
  FT := CovTime(TP.FindData.ftCreationTime);

  Stream := TFileStream.Create(FName, fmOpenRead or fmShareDenyNone);
  // awen modify (讓程序能在任何情況下——即使文件正在被使用——都能打開它
  // 不過如果數據庫是以獨占方式被Access打開了的話,本程序就無法打開了。)
  
  try // awen add (如果不加入try塊的話,對97版解密后不會執行Stream.free語句)
  Stream.Seek($00, 00); Stream.Read(Buf[0], 200);
  if Buf[$14] = 0 then
  begin
    PassCode := '';
    Stream.Seek($42, 00); Stream.Read(Buf[0], 20);
    for i := 0 to 19 do
      PassCode := PassCode + chr(Buf[i] xor InCode97[i]);
    Result.PassCode := PassCode;
    Result.FileType := 'ACCESS-97';
    Result.FileTime := FT;
    Exit; // 按Access97版本處理
  end;

  Date0 := EncodeDate(1978, 7, 01);
  Date1 := EncodeDate(1989, 9, 17);
  Date2 := EncodeDate(2079, 6, 05);

  Stream.Seek($42, 00); Stream.Read(ReaderArray[0], 40);
  Stream.Seek($75, 00); Stream.Read(BaseDate, 4);
  finally // awen add
  Stream.Free;
  end; // awen add

  S := format('文件:%s,[', [FName]);
  for i := $42 to $42 + 55 do
  begin
    if i = $72 then
      M := '-'
    else
      M := '';
    S := S + #32 + M + IntToHex(Buf[i], 2);
  end;
  S := '';
  if (BaseDate >= $90000000) and (BaseDate < $B0000000) then
  begin
    WSec := BaseDate xor $903E6C94;
    WTime := Date2 + WSec / 8192 * 2;
  end
  else
  begin
    WSec := BaseDate xor $803E6C94;
    WTime := Date1 + WSec / 8192;
    if WSec and $30000000 <> 0 then
    begin
      WSec := $40000000 - WSec;
      WTime := Date1 - WSec / 8192 / 2;
    end;
  end;
  if WTime < Date1 then
  begin //89年9月17日前
//    if FName = 'db96.mdb' then Showmessage(inttostr(BaseDate));
    S := '917前';
    for i := 0 to 9 do
    begin
      InhereArray[i * 2] := (Trunc(WTime) - Trunc(Date0)) xor UserCode[i] xor $F000;
      InhereArray[i * 2 + 1] := InhereCode[i];
    end;
  end
  else
  begin //89年9月17日后
    S := '917后';
    if WTime >= Date2 then
    begin //2076.6.5之后
      for i := 0 to 9 do
      begin
        InhereArray[i * 2] := (Trunc(WTime) - Trunc(Date1)) xor UserCode[i];
        InhereArray[i * 2 + 1] := InhereCode2[i];
      end;
    end
    else
    begin //2076.6.5之前
      for i := 0 to 9 do
      begin
        InhereArray[i * 2] := (Trunc(WTime) - Trunc(Date1)) xor UserCode[i];
        InhereArray[i * 2 + 1] := InhereCode[i];
      end;
    end;
  end;
  PassCode := '';
  for i := 0 to 19 do
  begin
    N := InhereArray[i] xor ReaderArray[i];
    if N <> 0 then PassCode := PassCode + Chr(N);
  end;
  Result.FileType := 'ACCESS-2000/XP';  // awen modify (我發現此程序可以解密OfficeXP版的數據庫)
  Result.FileTime := WTime;
  Result.PassCode := PassCode;
end;

procedure URLink(URL:string);
begin
  //uses ShellAPI;
  try
    //WinExec('D:\Program Files\EditPlus 2\editplus.exe f:\asd.xml',SW_NORMAL);
    //ShellExecute(application.Handle ,'open',pchar(filepaths),nil,nil,SW_ShowNormal);
    ShellExecute(0, nil, PChar(URL), nil, nil, SW_NORMAL);  //SW_MAXIMIZE,SW_NORMAL
  except
  end;
  //}
  {
  ShellExecute(0, nil, 'F:', nil, nil, SW_NORMAL);
  ShellExecute(0, nil, 'F:\temp.txt', nil, nil, SW_NORMAL);
  ShellExecute(handle, 'open', 'C:\ mydocument\abc.exe','','',SW_SHOWNORMAL); 
  //}
end;

function ShowMSG( Text: string; Caption: string='提示'; Flags: Longint=MB_OK): Integer;
begin

  Result := Application.MessageBox( PChar(Text), PChar(Caption), Flags);

end;

function saveDatabaseParam( vDatabaseParam:TDatabaseParam; sKey : string ):Boolean;
var
  vIniFile : TIniFile;
begin
  result := false;
  try
    vIniFile := TIniFile.Create(appPath+'\dbConnect.ini');
  except
    //('數據庫連接文件不存在,將采用默認連接');
    exit;
  end;

  if Trim(sKey)='' then sKey := 'DBConfig';
  {
  ServerIP,
  ServerName,
  ODBCName,
  sPort,
  DatabaseName,
  UserName,
  Password : String;
  }
  with  vDatabaseParam, vIniFile do
  begin
    WriteString( sKey,'ServerIP',ServerIP);
    WriteString( sKey,'ServerName',ServerName);
    WriteString( sKey,'ODBCName',ODBCName);
    WriteString( sKey,'sPort',sPort);
    WriteString( sKey,'DatabaseName',DatabaseName);
    WriteString( sKey,'UserName',UserName);
    WriteString( sKey,'Password',Password);
  end;
  
  vIniFile.Free;
  result := true;

end;

function getDatabaseParam( sKey : string ) : TDatabaseParam;
var
  vIniFile : TIniFile;
begin
//  with result do
//  begin
//    ServerName := 'mySQLodbc';
//    DatabaseName := 'cygl';
//    UserName := 'root';
//    Password := 'sa';
//  end;

  try
    vIniFile := TIniFile.Create(appPath+'\dbConnect.ini');
  except
    //('數據庫連接文件不存在,將采用默認連接');
    exit;
  end;
  {
  ServerIP,
  ServerName,
  ODBCName,
  sPort,
  DatabaseName,
  UserName,
  Password : String;
  }
  with  result, vIniFile do
  begin
    ServerIP    := ReadString(sKey,'ServerIP','127.0.0.1');//
    ServerName  := ReadString(sKey,'ServerName','');//mySQLodbc,cyglODBC
    ODBCName    := ReadString(sKey,'ODBCName','');//
    sPort       := ReadString(sKey,'sPort','');//
    DatabaseName:= ReadString(sKey,'DatabaseName','');//cygl
    UserName    := ReadString(sKey,'UserName','' );
    Password    := ReadString(sKey,'Password','' );
    vIniFile.Free;
  end;
  
end;

function Tdbm.linkMySQL( sODBC,sDBName,sUser,sPass : string ):boolean;
begin
  //
  Result := False;
  with dbODBCMySQL do
  begin
    if Connected then  Connected := false;

    Params.Values['ODBC DSN']   :=  sODBC;
    Params.Values['DATABASE NAME'] :=  sDBName;
    Params.Values['USER NAME']  :=  sUser;
    Params.Values['PASSWORD']   :=  sPass;

    try
      Connected := true;
    except
      Exit;
    end;

  end;
  Result := dbODBCMySQL.Connected;

end;  

function Tdbm.connectMySQLDB():boolean;
begin
  try
//    databaseParam := getDatabaseParam('DBMySQL');
    with databaseParam do
    begin
      if (trim(ODBCName)='') or (trim(DatabaseName)='') then
      begin
        result := false;
        exit;
      end;

      result := linkMySQL(ODBCName,DatabaseName,UserName,Password);
      
    end;
//    saveDatabaseParam(databaseParam,'DBMySQL');
  except
    result := false;
  end;
  
end;

function CreateOdbcMySQL(DateSourceName,Server,sPORT,sUser,sPWD,DataBase:String) : Integer;
var
  TheReg:TRegistry;
  KeyName,Driver, ss:string;
begin
  {在用delphi自動配置odbc數據源時如果是Sql server數據庫如何配置
   在注冊表中可以寫入用戶名、數據庫、驅動程序文件、數據源名稱、服務器名稱,
   但是SQl 服務器的密碼怎么辦呀
  }
  Result := 0;
  //Driver:='C:\WINDOWS\SYSTEM\SQLSRV32.DLL';
//  Driver := 'C:\WINNT\system32\myodbc3.dll';
  Driver := sys32Path+'\myodbc3.dll';

  try
    TheReg:=TRegistry.Create;
    TheReg.RootKey:=HKEY_LOCAL_MACHINE;
    //-------------------------------------------------
    //test odbc Driver
    KeyName:='\software\odbc\ODBCINST.INI\MySQL ODBC 3.51 Driver';
    if not TheReg.KeyExists(KeyName) then
    begin
      ShowMSG('MySQL ODBC 驅動不存在,創建失敗!');
      Result := -1;//odbc Driver not Exists
      exit;
    end;

    if TheReg.OpenKey(KeyName,false) then
    begin
      ss := TheReg.ReadString('Driver');
      if not SameText(ss,Driver) then
      begin
        Driver := ss;
      end;

    end;
    //-------------------------------------------------
    KeyName:='\software\odbc\odbc.ini\'+DateSourceName;
    //1011 add 刪除此處,改為存在就覆蓋現有設置
    if TheReg.KeyExists(KeyName) then
    begin
      if ShowMsg( '數據源 [ '+DateSourceName+' ] 已存在,要覆蓋嗎?','提示', mb_okcancel+mb_defbutton2+mb_iconquestion) <> id_ok then
      begin
        //TheReg.ReadString('');        
        Result := -2;//odbc Exists
        exit;
      end;
    end;
    //}
    
    if TheReg.OpenKey(KeyName,true) then
    begin
      TheReg.WriteString('DATABASE',DataBase);//cygl
      TheReg.WriteString('Driver',Driver);//C:\WINNT\system32\myodbc3.dll
      TheReg.WriteString('PORT',sPORT);//3307
      TheReg.WriteString('PWD',sPWD);//sa
      TheReg.WriteString('SERVER',Server);//127.0.0.1
      TheReg.WriteString('UID',sUser);//root
      TheReg.CloseKey;
    end;

    KeyName:='\software\odbc\odbc.ini\ODBC Data Sources';

    if TheReg.OpenKey(KeyName,false) then
    begin
      TheReg.WriteString(DateSourceName,'MySQL ODBC 3.51 Driver'); 
      TheReg.CloseKey;
    end;
  finally
    TheReg.Free;
  end;
  Result := 1;//

end;

function Tdbm.testDBMySQLLink( bShowSet: Boolean = True ) : Boolean;
var
  ss : string;
begin
  //測試數據庫連接,自動配置
  Result := False;
  if dbODBCMySQL.Connected then
  begin
    Result := True;
    Exit;
  end
  else//not link
  begin

    if not bShowSet then
    begin
      Result := False;
      Exit;
    end; 

    databaseParam := getDatabaseParam('DBMySQL');
    if not connectMySQLDB() then
    begin
      Application.CreateForm(TfrmCfgDBMySQL, frmCfgDBMySQL);
      if frmCfgDBMySQL.ShowModal = 1 then
      begin
        frmCfgDBMySQL.free;
        connectMySQLDB;
      end
      else
      begin
        frmCfgDBMySQL.free;
        exit;
      end;
    end;
    //----------------------------------------
    Result := dbODBCMySQL.Connected;

  end;

end;

function GetSysPath():   string;
var
  vBuffer:   array[0..MAX_PATH]   of   Char;
begin
  //C:\WINNT\system32
  GetSystemDirectory(vBuffer,   MAX_PATH);
  Result   :=   vBuffer;   
end;

function Tdbm.linkADOAccess( sPathName: string; mdbPass : string; mdbUser : string='admin' ) : boolean;
var
  ss : String;
//  slt:TStringList;
  i:integer;
begin
  Result := False;                   
//  vDir := ExtractFilePath(application.ExeName);
  if not FileExists( sPathName ) then Exit;

  if adocLink.Connected then
    adocLink.Connected := false;
  {
  Provider=MSDASQL.1;
  Password=why;
  Persist Security Info=True;
  User ID=admin;
  Extended Properties="DBQ=E:\card\cardBase.mdb;
  DefaultDir=E:\delphi\card;Driver={Microsoft Access Driver (*.mdb)};       //}

  {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性感一类影片在线播放| 日本视频免费一区| 国产精品一区不卡| 欧美精品一区二区三区很污很色的 | 色偷偷88欧美精品久久久| 国产精品入口麻豆原神| 懂色av中文字幕一区二区三区| 亚洲国产精品高清| 美女在线一区二区| 日韩女优制服丝袜电影| 亚洲精品中文在线| 精品裸体舞一区二区三区| 91在线免费视频观看| 欧美亚一区二区| 2014亚洲片线观看视频免费| 国产一区二区三区日韩| 欧美日韩久久不卡| 同产精品九九九| 日韩欧美一区中文| 成人av资源网站| 亚洲电影视频在线| 亚洲欧美中日韩| 91.成人天堂一区| 午夜精品福利在线| 欧美女孩性生活视频| 国产三级精品视频| 激情av综合网| 欧美一区二区三区公司| 亚洲高清免费在线| 91精品欧美综合在线观看最新| 亚洲一区二区在线免费观看视频| 日韩一区二区三区视频在线观看| 国产精品护士白丝一区av| 欧美网站大全在线观看| 狠狠色丁香久久婷婷综合丁香| 亚洲摸摸操操av| 日韩精品一区二区三区在线播放| 99久久精品免费看国产免费软件| 午夜精品福利一区二区三区av| 久久久久久久久久看片| 欧美日韩电影一区| 99久久久国产精品| 精品亚洲成av人在线观看| 亚洲老妇xxxxxx| 欧美国产丝袜视频| 日韩欧美亚洲另类制服综合在线| 色综合中文字幕国产 | 99久久综合99久久综合网站| 日韩电影在线免费| 亚洲欧美自拍偷拍| 国产精品一线二线三线精华| 亚洲国产日韩av| 精品88久久久久88久久久| 欧美国产在线观看| 精品国产成人在线影院| 日韩成人免费电影| 精品国内片67194| 韩国视频一区二区| 国产精品成人免费| 欧美日韩性生活| 久草在线在线精品观看| 国产日韩av一区| 欧美一区二区三区免费观看视频| 久久精品国产精品亚洲精品| 欧美国产精品v| 欧美日韩国产首页在线观看| 另类专区欧美蜜桃臀第一页| 亚洲欧美中日韩| 精品久久久久一区二区国产| 国产大陆精品国产| 欧美96一区二区免费视频| 欧美激情一区二区三区全黄| 欧美伊人精品成人久久综合97| 日本欧美大码aⅴ在线播放| 国产精品嫩草影院av蜜臀| 欧美日韩一卡二卡三卡| 粉嫩av亚洲一区二区图片| 首页国产欧美日韩丝袜| 自拍偷拍亚洲综合| 最新成人av在线| 中文字幕av在线一区二区三区| 精品欧美乱码久久久久久| 91黄视频在线| 色av一区二区| 欧美在线你懂的| 欧美日精品一区视频| 99久久er热在这里只有精品66| 国产成人亚洲精品青草天美| 美女精品自拍一二三四| 毛片一区二区三区| 奇米影视一区二区三区| 日本亚洲视频在线| 蜜臀av一区二区| 国产一区欧美一区| 国产成人午夜精品影院观看视频 | 亚洲精品精品亚洲| 亚洲欧美一区二区三区久本道91| 亚洲国产成人午夜在线一区| 国产精品免费网站在线观看| 国产精品嫩草影院av蜜臀| 国产精品国产馆在线真实露脸| 综合网在线视频| 亚洲国产精品一区二区www| 首页国产丝袜综合| 国产一区二区三区国产| 91蜜桃传媒精品久久久一区二区| 欧美日韩中字一区| 久久蜜桃香蕉精品一区二区三区| 国产精品久久久久久妇女6080 | 蜜臀av性久久久久蜜臀aⅴ四虎| 麻豆精品一区二区三区| 成人一区在线观看| 日韩一区国产二区欧美三区| 亚洲欧洲国产日本综合| 久久99日本精品| 欧美精品第1页| **性色生活片久久毛片| 黑人巨大精品欧美一区| 欧美日韩亚洲综合一区二区三区| 久久久久久一二三区| 亚洲第一搞黄网站| 不卡av在线免费观看| 久久精品一区二区三区不卡| 亚洲福利视频导航| av午夜精品一区二区三区| 精品久久久久久久久久久久包黑料 | 裸体在线国模精品偷拍| 欧美丝袜丝nylons| 亚洲黄色小视频| 本田岬高潮一区二区三区| 国产欧美日韩麻豆91| 国产在线视频一区二区三区| 日韩一区二区三区电影 | 粉嫩av一区二区三区| 久久中文娱乐网| 国产成人精品三级麻豆| 欧美激情一区二区三区不卡 | 91精品视频网| 日本少妇一区二区| 国产亚洲精品资源在线26u| 国产一区福利在线| 国产精品久久久久一区二区三区共| 懂色av一区二区夜夜嗨| 国产精品国模大尺度视频| 欧美午夜一区二区| 秋霞国产午夜精品免费视频| 日韩亚洲欧美综合| 精品一区二区三区在线播放| 欧美激情一区不卡| 欧美日韩你懂得| 国产不卡在线视频| 一区二区在线观看免费| 欧美精品粉嫩高潮一区二区| 国产成人精品免费看| 午夜不卡在线视频| 中文字幕欧美激情| 欧美乱妇15p| 成人久久久精品乱码一区二区三区| 亚洲精品日韩专区silk| 9191精品国产综合久久久久久 | 色综合久久久久| 日本人妖一区二区| 亚洲桃色在线一区| 精品少妇一区二区三区在线视频| 欧美日韩黄色影视| 美女久久久精品| 日本不卡视频一二三区| 午夜精品一区在线观看| 亚洲成人动漫在线免费观看| 亚洲精选免费视频| 亚洲视频一二区| 亚洲蜜臀av乱码久久精品| 一区二区三区电影在线播| 中文字幕亚洲在| 亚洲综合免费观看高清完整版 | 国产精品一区二区在线观看不卡| 日本不卡视频一二三区| 精品一区二区三区在线视频| 国产呦萝稀缺另类资源| 成人小视频免费在线观看| 成人av免费观看| 欧美日韩卡一卡二| 91精品国产高清一区二区三区 | 成人综合在线网站| 成人激情免费视频| 欧美日韩电影一区| 2020国产精品| 亚洲午夜精品一区二区三区他趣| 亚洲国产va精品久久久不卡综合| 日韩成人免费看| 丁香激情综合国产| 欧美精品粉嫩高潮一区二区| 欧美一区二区网站| 在线观看免费亚洲| 3d动漫精品啪啪1区2区免费| 久久九九久久九九| 日韩成人免费电影| 99re这里只有精品6| 亚洲精品中文在线| 91.com视频|