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

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

?? ufrmbfmysql.pas

?? 數據庫通用工具
?? PAS
字號:
unit UfrmBFMySQL;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UfrmModel, StdCtrls, Buttons, ExtCtrls, ActnList, ShlObj, Registry,
  StrUtils, DB, DBTables;

type
  TfrmBFMySQL = class(TfrmModel)
    Panel1: TPanel;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    edtPath: TEdit;
    bbtSelPath: TBitBtn;
    mo: TMemo;
    GroupBox1: TGroupBox;
    Label5: TLabel;
    edtFile: TEdit;
    BitBtn4: TBitBtn;
    OpenDialog1: TOpenDialog;
    BitBtn5: TBitBtn;
    Label6: TLabel;
    mo1: TMemo;
    qryPub: TQuery;
    qryPub2: TQuery;
    Label7: TLabel;
    edtDB: TEdit;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    edtToPath: TEdit;
    bbtSel2: TBitBtn;
    edtDBName: TEdit;
    Label4: TLabel;
    BitBtn3: TBitBtn;
    Label3: TLabel;
    procedure bbtSelPathClick(Sender: TObject);
    procedure bbtSel2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    function testDBExist( dbName : string ) : Boolean;
    procedure moAdd( str : string );
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmBFMySQL: TfrmBFMySQL;

implementation

uses Udbm;

{$R *.dfm}

procedure TfrmBFMySQL.bbtSelPathClick(Sender: TObject);
var
  BrowseInfo  : TBrowseInfo;//ShlObj
  PIDL        : PItemIDList;
  DisplayName : array[0..MAX_PATH] of Char;
begin
  inherited;
  FillChar(BrowseInfo,SizeOf(BrowseInfo),#0);
  BrowseInfo.hwndOwner      := Handle;
  BrowseInfo.pszDisplayName := @DisplayName[0];
  BrowseInfo.lpszTitle      := 'MySQL Path';//'選擇路徑';
  BrowseInfo.ulFlags        := BIF_RETURNONLYFSDIRS;
  PIDL := SHBrowseForFolder(BrowseInfo);
  if Assigned(PIDL) then
    if SHGetPathFromIDList(PIDL, DisplayName) then
      edtPath.Text := DisplayName;
      //ShowMessage(DisplayName);
end;

procedure TfrmBFMySQL.bbtSel2Click(Sender: TObject);
var
  BrowseInfo  : TBrowseInfo;//ShlObj
  PIDL        : PItemIDList;
  DisplayName : array[0..MAX_PATH] of Char;
begin
  inherited;
  FillChar(BrowseInfo,SizeOf(BrowseInfo),#0);
  BrowseInfo.hwndOwner      := Handle;
  BrowseInfo.pszDisplayName := @DisplayName[0];
  BrowseInfo.lpszTitle      := 'MySQL Path';//'選擇路徑';
  BrowseInfo.ulFlags        := BIF_RETURNONLYFSDIRS;
  PIDL := SHBrowseForFolder(BrowseInfo);
  if Assigned(PIDL) then
    if SHGetPathFromIDList(PIDL, DisplayName) then
      edtToPath.Text := DisplayName;
      //ShowMessage(DisplayName);
      
end;

procedure TfrmBFMySQL.FormShow(Sender: TObject);
var
  ss,sIniPath : string;
  regf : TRegistry;
begin
  inherited;
//  bbtSelPath.Visible := False;
  try
    regf := TRegistry.create;
    regf.RootKey := HKEY_LOCAL_MACHINE;
    regf.OpenKey('SOFTWARE\MySQL AB\MySQL Server 5.2',true);
    ss := regf.ReadString('Location');
    regf.CloseKey;
    regf.free;

    if Trim(ss)='' then//需要手工指定
    begin
      bbtSelPath.Visible := True;
    end
    else//<>''
    begin
      edtPath.Text := ss;
    end;
    
  except
  end;

  databaseParam := getDatabaseParam('DBMySQL');
  edtDBName.Text := databaseParam.DatabaseName;
  
end;

procedure TfrmBFMySQL.BitBtn3Click(Sender: TObject);
var
  ss,sto,sbin : string;
begin
  inherited;
  if not dbm.testDBMySQLLink() then Exit;

  //'mysqldump.exe'
  ss := Trim(edtPath.Text);
  if RightStr(ss,1)<>'\' then
  begin
    ss := ss+'\';
  end;
  
  sbin := ss+'bin\mysqldump.exe';

  if not FileExists(sbin) then
  begin
    ShowMSG('MySQL 路徑無效!');
    Exit;
  end;

  sto := Trim(edtToPath.Text);
  if RightStr(sto,1)<>'\' then
  begin
    sto := sto+'\';
  end;
  
  if not DirectoryExists(sto) then
  begin
    ForceDirectories( sto );
//    ShowMSG('備份路徑無效!');
//    Exit;
  end;
    
  {
  cd C:\Program Files\MySQL\MySQL Server 5.2\bin
  mysqldump -uroot -psa --opt cygl > e:\cygl_0423.sql
  mysqldump -uroot -psa --opt cygl < e:\cygl_0423.sql
  }
  mo.Lines.Clear;
  mo.Lines.Add('@echo off');
  //mo.Lines.Add('md D:\DB_Backup');
  //mo.Lines.Add('md '+sto);  
  mo.Lines.Add( LeftStr(ss,2) );//D:
  mo.Lines.Add('cd '+ss+'bin\');
  mo.Lines.Add('mysqldump -u'
    + databaseParam.UserName
    + ' -p'
    + databaseParam.Password
    + ' --opt '
    + edtDBName.Text //databaseParam.DatabaseName
    + ' > '
    + sto //D:\DB_Backup
    + edtDBName.Text+'_'  //cygl_
    + FormatDateTime('yymmdd_hhmmss',Now) +'.sql' );

//  mo.Lines.Add('mysqldump -uroot -psa --opt cygl < D:\DB_Backup\cygl_0423.sql' );
  //mo.Lines.Add('@del %0');

  if FileExists( appPath+'\temp.bat' )  then
  begin
    DeleteFile( appPath+'\temp.bat' );
  end;

  mo.Lines.SaveToFile( appPath+'\temp.bat' );

  if ShowMSG( '請終止一切操作,等待備份完成!','提示',1 ) <> ID_OK then
  begin
    exit;
  end;

  URLink( appPath+'\temp.bat' );
  sleep(4000);
  ShowMSG('備份成功。');

end;

procedure TfrmBFMySQL.BitBtn4Click(Sender: TObject);
begin
  inherited;
  if OpenDialog1.Execute then
  begin
    edtFile.Text := OpenDialog1.FileName;
  end;
end;

function TfrmBFMySQL.testDBExist( dbName : string ) : Boolean;
var
  bExist : Boolean;
  ss : string;
begin
  Result := True;

  if dbm.dbODBCMySQL.Connected then
  begin
    with qryPub2 do
    begin
      Close;
      SQL.Text := 'show databases';

      try
        open;
      except
        Exit;
      end;

      ss := '';
      bExist := False;
      while not Eof do
      begin
        ss := FieldByName('database').AsString;
        if SameText(ss,dbName) then
        begin
          bExist := True;
          Break;
        end;
        Next;
      end;
      
      Result := bExist;
    end;
  end;
  
end;

procedure TfrmBFMySQL.moAdd( str : string );
begin
  mo1.Lines.Add( str );
end;

procedure Delay(Msecs: Integer);
var
   FirstTickCount : real;
begin  
   FirstTickCount := GetTickCount;
   Repeat
      Application.ProcessMessages;
   Until ((GetTickCount - FirstTickCount) >= LongInt (Msecs));
end;

procedure TfrmBFMySQL.BitBtn5Click(Sender: TObject);
var
  ss,sfrom,sto,sbin,sDB,sPath : string;
  i,fHandle : Integer;
  pc : char;
begin
  inherited;
  ss := Trim(edtPath.Text);
  if RightStr(ss,1)<>'\' then
  begin
    ss := ss+'\';
  end;

  sPath := ss;
  sbin := ss+'bin\mysqldump.exe';

  if not FileExists(sbin) then
  begin
    ShowMSG('MySQL 路徑無效!');
    Exit;
  end;
  
  sDB := Trim(edtDB.Text);
  if sDB='' then
  begin
    if edtDB.CanFocus then edtDB.SetFocus;
    Exit;
  end;

  //還原
  sfrom := Trim(edtFile.Text);
  if not FileExists(sfrom) then
  begin
    ShowMSG('備份文件不存在!');
    Exit;
  end;

  if ShowMSG( '您確定該備份文件有效嗎!','提示',1 ) <> ID_OK then
  begin
    exit;
  end;

  if not dbm.testDBMySQLLink() then Exit;
  
  ss := Copy( sys32Path,1,3 )+'creatDatabase.sql';//'C:\creatDatabase.sql';
  try
    if FileExists(ss) then
    begin
      DeleteFile( ss );
    end;

    CopyFile( PChar( sfrom ),PChar(ss), True);
    FileSetAttr( ss, 0);//faArchive
  except
  end;
  //}

  sto := StringReplace(ss,'\','/',[rfReplaceAll]);

  if testDBExist( sDB ) then
  begin
    moAdd( '數據庫 '+sDB+' 已存在!');
  end
  else
  begin
    with qryPub do
    begin
      Close;
      SQL.Text := 'create database '+sDB;//sDB;

      try
        ExecSQL;
        moAdd( '新建數據庫 '+sDB+' 成功。');
      except
        moAdd( '新建數據庫失敗!');
        Exit;
      end;
    end;
  end;                                           

  if dbm.dbODBCMySQL.Connected then
    dbm.dbODBCMySQL.Connected := False;
    
  mo.Lines.Clear;
  mo.Lines.Add('@echo off');
  mo.Lines.Add( Copy(sbin,1,2 ) );//D:
  mo.Lines.Add('cd '+sPath+'bin\');
  mo.Lines.Add('mysql -u'+databaseParam.UserName+ ' -p'+databaseParam.Password);
  mo.Lines.Add('use '+sDB);
//  mo.Lines.Add('@del %0');

  if FileExists( appPath+'\temp.bat' )  then
  begin
    DeleteFile( appPath+'\temp.bat' );
  end;

  mo.Lines.SaveToFile( appPath+'\temp.bat' );

  if ShowMSG( '請終止一切操作,等待恢復完成!','提示',1 ) <> ID_OK then
  begin
    exit;
  end;

  URLink( appPath+'\temp.bat' );
  sleep(1000);
  i := 0;
  while i<3 do
  begin
    ss := sys32Path+'\cmd.exe';//'C:\WINNT\system32\cmd.exe';
    fHandle := FindWindow(nil, PChar(ss) );
    if fHandle>0 then
    begin
      ss := 'use '+sDB;//cygl
      for i := 1 to Length(ss) do
      begin
        pc := ss[i];
        postmessage(fHandle,wm_char,ord(pc),0);
      end;

      postmessage(fHandle,wm_char,13,0);
      //---------------------------------
      //source d:/creatDatabase.sql
      ss := 'source '+sto;
      for i := 1 to Length(ss) do
      begin
        pc := ss[i];
        postmessage(fHandle,wm_char,ord(pc),0);
      end;

      postmessage(fHandle,wm_char,13,0);
      //---------------------------------
      ss := 'exit;';
      for i := 1 to Length(ss) do
      begin
        pc := ss[i];
        postmessage(fHandle,wm_char,ord(pc),0);
      end;

      postmessage(fHandle,wm_char,13,0);
      
      break;
    end
    else
    begin
      inc(i);
      Delay(500);
    end;
  end;
  
  moAdd( '還原完畢。');
  ShowMSG('還原完畢。');

end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合网| 欧美丰满少妇xxxbbb| 欧美日韩国产成人在线91| 26uuuu精品一区二区| 亚洲精品成a人| 国产91精品欧美| 精品国产一区二区国模嫣然| 亚洲永久精品大片| 91网页版在线| 国产精品视频第一区| 美日韩一区二区| 欧美三级中文字幕在线观看| 亚洲女厕所小便bbb| 国产精品性做久久久久久| 日韩一区二区不卡| 午夜精品爽啪视频| 欧美日韩综合不卡| 玉足女爽爽91| 一本大道久久a久久精品综合| 欧美精品一区二区在线播放| 青青青爽久久午夜综合久久午夜| 欧美日韩在线播放三区四区| 亚洲免费在线视频一区 二区| 成人短视频下载| 国产欧美一区二区精品仙草咪| 久久aⅴ国产欧美74aaa| 欧美一级午夜免费电影| 日韩高清电影一区| 91精品在线观看入口| 日韩黄色免费网站| 91精品国产综合久久久久| 日韩二区三区在线观看| 欧美亚洲精品一区| 午夜视频在线观看一区| 欧美高清激情brazzers| 蜜桃视频一区二区三区在线观看| 91精品福利在线一区二区三区| 亚洲一二三四在线观看| 欧美日韩国产免费| 蜜臀av一区二区在线观看| 日韩一级大片在线| 精品在线视频一区| 国产欧美日本一区二区三区| 99re这里只有精品视频首页| 有码一区二区三区| 欧美日韩国产123区| 蜜桃视频一区二区| 欧美激情综合五月色丁香小说| 成人妖精视频yjsp地址| 亚洲婷婷综合久久一本伊一区| 在线视频你懂得一区| 国产精品系列在线播放| 亚洲国产精品二十页| 99精品久久只有精品| 樱桃视频在线观看一区| 欧美日韩一级二级三级| 久久精品久久久精品美女| 久久精品欧美一区二区三区麻豆| 成人h动漫精品一区二区| 亚洲精品免费电影| 日韩一区二区三区四区五区六区 | 一区二区免费在线播放| 欧美福利视频导航| 国产成人在线视频播放| 亚洲主播在线播放| 亚洲精品一区二区三区四区高清| 成人av网站大全| 亚洲一区二区3| 久久先锋影音av鲁色资源| 91丨九色丨蝌蚪丨老版| 亚洲va欧美va人人爽| 国产夜色精品一区二区av| 欧美综合一区二区| 国产麻豆精品在线| 一卡二卡三卡日韩欧美| 欧美一区二区三区色| 国产91清纯白嫩初高中在线观看| 丝袜美腿亚洲一区| 中文字幕一区二区在线观看| 欧美高清www午色夜在线视频| 在线不卡免费av| 成人一区二区在线观看| 亚洲制服丝袜在线| 日本一区二区三区高清不卡 | 亚洲制服丝袜av| 国产三级精品三级| 日韩欧美一区二区久久婷婷| 在线视频国内自拍亚洲视频| 高清日韩电视剧大全免费| 日韩精品一级二级| 亚洲人成在线播放网站岛国| 久久理论电影网| 91精品国产综合久久久久| 91福利视频网站| 成人黄色一级视频| 国产精品18久久久久久久久久久久 | 91尤物视频在线观看| 国产精品综合二区| 另类中文字幕网| 日本欧美韩国一区三区| 午夜久久电影网| 亚洲小说欧美激情另类| 国产一区在线观看麻豆| 三级精品在线观看| 亚洲国产人成综合网站| 一区二区三区色| 亚洲视频1区2区| 亚洲精品五月天| 亚洲婷婷综合久久一本伊一区| 国产精品美女久久久久久| 国产亚洲一二三区| 国产欧美精品一区二区三区四区| 欧美α欧美αv大片| 精品蜜桃在线看| 久久嫩草精品久久久久| 精品国产乱码久久久久久1区2区| 日韩欧美精品在线视频| 欧美岛国在线观看| 精品电影一区二区三区| 精品国产凹凸成av人导航| 精品国精品国产| 久久久精品综合| 中文字幕免费观看一区| 国产精品久久久久久久久动漫 | 欧美亚洲尤物久久| 欧美日韩一级大片网址| 337p亚洲精品色噜噜噜| 欧美电视剧在线看免费| 国产三级一区二区三区| 亚洲欧洲日本在线| 一级做a爱片久久| 人人超碰91尤物精品国产| 精品一区二区三区日韩| 国产不卡免费视频| 欧美这里有精品| 日韩欧美国产综合在线一区二区三区| 欧美一二三区在线观看| 国产欧美日韩视频一区二区| 中文字幕亚洲一区二区av在线 | 午夜激情综合网| 精品亚洲aⅴ乱码一区二区三区| 高清不卡一区二区在线| 91网页版在线| 欧美tickling网站挠脚心| 日韩高清欧美激情| 精品亚洲成a人| 在线免费观看成人短视频| 精品久久国产字幕高潮| 亚洲欧洲制服丝袜| 蜜臀久久99精品久久久久宅男 | 欧美午夜电影一区| 久久久亚洲国产美女国产盗摄| 亚洲欧美国产高清| 经典三级视频一区| 欧美在线视频不卡| 国产亚洲综合av| 日本一道高清亚洲日美韩| 成人动漫一区二区在线| 欧美一级久久久久久久大片| 亚洲色图丝袜美腿| 国产一区二区网址| 欧美另类一区二区三区| 中文字幕中文字幕在线一区 | 色偷偷一区二区三区| 精品乱人伦小说| 亚洲成人动漫在线观看| 不卡av电影在线播放| 精品久久久久久久久久久院品网| 亚洲黄色免费电影| 成人深夜视频在线观看| 日韩精品一区国产麻豆| 亚洲国产综合色| 99综合电影在线视频| 久久综合九色欧美综合狠狠| 日韩精品三区四区| 在线日韩av片| 《视频一区视频二区| 国产一区二区三区免费在线观看| 欧美日韩黄色一区二区| 亚洲综合偷拍欧美一区色| 成人精品免费看| 亚洲精品一区二区精华| 人禽交欧美网站| 欧美一卡二卡三卡四卡| 亚洲国产wwwccc36天堂| 91久久一区二区| 亚洲精品五月天| 色哟哟精品一区| 一区二区三区精品久久久| 91网站在线播放| 悠悠色在线精品| 在线观看免费成人| 国产在线播放一区三区四| 日韩欧美国产麻豆| 久久97超碰色| 欧美一区二区不卡视频| 蜜臀av一区二区在线观看| 日韩欧美123| 精品一区二区久久| 久久精品一区二区|