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

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

?? sqledit.~pas

?? 很久以前用delphi寫的一個SQLServer外部的企業管理器
?? ~PAS
字號:
unit SQLEdit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, StdCtrls, DB, ADODB, Grids, DBGrids,XString,XADOEX;

type
  TSQLEditForm = class(TForm)
    Panel1: TPanel;
    Splitter1: TSplitter;
    StatusBar1: TStatusBar;
    SQLText: TMemo;
    Panel2: TPanel;
    ResultPage: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    ResultFrame: TScrollBox;
    ResultFramePanel: TPanel;
    SQLInfo: TMemo;
    FontDialog: TFontDialog;
    ColorDialog: TColorDialog;
    SaveDialog: TSaveDialog;
    procedure FormResize(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SQLTextChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    
  private
    { Private declarations }
    ResultADO:TADOQuery;
    ResultSource:TDataSource;
    ResultGrid:TDBGrid;
    ResultSplit:TSplitter;
    ResultPanel:TPanel;
    savetofilename:String;
    Function AddNewResult(SQLStr:String):integer;
    Procedure CloseResult;
    Procedure ResultPanelCanResize(Sender: TObject; var NewWidth,NewHeight: Integer; var Resize: Boolean);
  public
    { Public declarations }
    Procedure RunSQL;
    Procedure TheCheckSQL;
    Procedure SetFont;
    Procedure SetBKColor;
    Procedure ExecuteSQL(SQLStr:String);
    Procedure SaveText;
    Procedure SaveASText;
    Procedure OpenText(filename:string);
  end;

var
  SQLEditForm: TSQLEditForm;

implementation

uses MainUnit;

{$R *.dfm}

Procedure TSQLEditForm.TheCheckSQL;
var SQLCount,i,j,ReturnCount:integer;
    SQLString:array of String;
    tempstr:string;
    StartCount,
    EndCount: TLargeInteger;
    Frequency: TLargeInteger;
    ElapsedTime: Extended;

begin
 try
    QueryPerformanceFrequency(Frequency);
    QueryPerformanceCounter(StartCount);
    ReturnCount:=0;
    statusbar1.Panels[0].Text:='正在檢查批查詢...';
    statusbar1.Panels[1].Text:='';
    statusbar1.Panels[2].Text:='';
    CloseResult;
    tempstr:='';
    for i:=0 to SQLText.Lines.Count-1 do
    begin
       if pos('//',SQLText.Lines[i])<>0 then          //t處理注釋的情況
         tempstr:=tempstr+copy(SQLText.lines[i],1,Pos('//',SQLText.lines[i])-1)
       else if pos('--',SQLText.Lines[i])<>0 then
        tempstr:=tempstr+copy(SQLText.lines[i],1,Pos('--',SQLText.lines[i])-1)
       else
         tempstr:=tempstr+SQLText.lines[i];
    end;


   // tempstr:=SQLText.Text;


    SQLCount:=GetSplitCount(tempstr,';');
    if SQLCount=0 then
    begin
         SQLInfo.Lines.Add('沒有找到結束符');
         ResultPage.ActivePageIndex:=1;
         QueryPerformanceCounter(EndCount);
         statusbar1.Panels[0].Text:='出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         ResultPage.ActivePageIndex:=1;exit;
    end;
    SetLength(SQLString,SQLCount);
    j:=1;
    for i:=0 to SQLCount-1 do
        SQLString[i]:=SplitStr(tempstr,';',j);  //獲得SQL

    if not CheckSQL(SQLBrowseManager.ADOConnection,SQLString) then
     begin
         SQLInfo.Lines.Add('SQL語句錯誤');
         QueryPerformanceCounter(EndCount);
         statusbar1.Panels[0].Text:='檢查出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         ResultPage.ActivePageIndex:=1;
         exit;
     end;

     ResultPage.ActivePageIndex:=1;
     statusbar1.Panels[0].Text:='批查詢完成';
     SQLInfo.Lines.Add('批查詢完成');
     QueryPerformanceCounter(EndCount);
     ElapsedTime := (EndCount - StartCount)/Frequency;
     statusbar1.Panels[1].Text:='耗時:'+FloatToStr(ElapsedTime);

  except
   on e:exception do
   begin
         QueryPerformanceCounter(EndCount);
         SQLInfo.Lines.Add(e.Message);
         ResultPage.ActivePageIndex:=1;
         SQLInfo.Lines.Add('檢查出現錯誤');
         statusbar1.Panels[0].Text:='檢查出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         exit;
   end;
 end;

end;

Procedure TSQLEditForm.OpenText(filename:string);
begin
     if filename='' then exit;
       savetofilename:=filename;
       SQLText.Lines.LoadFromFile(savetofilename);
end;

Procedure TSQLEditForm.SaveText;
begin
   if savetofilename<>'' then
     SQLText.Lines.SaveToFile(savetofilename)
   else SaveASText;
end;


Procedure TSQLEditForm.SaveASText;
begin
    SaveDialog.Execute;
    if SaveDialog.filename='' then exit;

    savetofilename:=SaveDialog.filename;
    case SaveDialog.FilterIndex of
      1: savetofilename:=savetofilename+'.sql';
      2: savetofilename:=savetofilename+'.txt';
      3: savetofilename:=savetofilename+'.sql';
    end;


    SaveText;
end;


Procedure TSQLEditForm.SetBKColor;
begin
    ColorDialog.Execute;
    SQLText.Color:=ColorDialog.Color;
end;

Procedure TSQLEditForm.SetFont;
begin
     FontDialog.Font:=SQLText.Font;
     FontDialog.Execute;
     if not assigned(fontdialog.Font) then exit;
     SQLText.Font:=fontdialog.Font;
end;

Procedure TSQLEditForm.ExecuteSQL(SQLStr:String);
begin
   SQLText.Clear;
   SQLText.Lines.Add(sqlstr);
   AddNewResult(SQLStr);
   ResultPage.ActivePageIndex:=0;
end;


Procedure TSQLEditForm.RunSQL;
var SQLCount,i,j,ReturnCount:integer;
    SQLString:array of String;
    tempstr:string;
    StartCount,
    EndCount: TLargeInteger;
    Frequency: TLargeInteger;
    ElapsedTime: Extended;

begin
 try
    QueryPerformanceFrequency(Frequency);
    QueryPerformanceCounter(StartCount);
    ReturnCount:=0;
    statusbar1.Panels[0].Text:='正在執行批查詢...';
    statusbar1.Panels[1].Text:='';
    statusbar1.Panels[2].Text:='';
    CloseResult;
    tempstr:='';
    for i:=0 to SQLText.Lines.Count-1 do
    begin
       if pos('//',SQLText.Lines[i])<>0 then          //t處理注釋的情況
         tempstr:=tempstr+copy(SQLText.lines[i],1,Pos('//',SQLText.lines[i])-1)
       else if pos('--',SQLText.Lines[i])<>0 then
        tempstr:=tempstr+copy(SQLText.lines[i],1,Pos('--',SQLText.lines[i])-1)
       else
         tempstr:=tempstr+SQLText.lines[i];
    end;


   // tempstr:=SQLText.Text;


    SQLCount:=GetSplitCount(tempstr,';');
    if SQLCount=0 then
    begin
         SQLInfo.Lines.Add('沒有找到結束符');
         ResultPage.ActivePageIndex:=1;
         QueryPerformanceCounter(EndCount);
         statusbar1.Panels[0].Text:='出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         ResultPage.ActivePageIndex:=1;exit;
    end;
    SetLength(SQLString,SQLCount);
    j:=1;
    for i:=0 to SQLCount-1 do
        SQLString[i]:=SplitStr(tempstr,';',j);  //獲得SQL

    if not CheckSQL(SQLBrowseManager.ADOConnection,SQLString) then
     begin
         SQLInfo.Lines.Add('SQL語句錯誤');
         QueryPerformanceCounter(EndCount);
         statusbar1.Panels[0].Text:='出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         ResultPage.ActivePageIndex:=1;
         exit;
     end;

   { for i:=SQLCount-1 downto 0 do
     if not CheckSQL(SQLBrowseManager.ADOConnection,SQLString[i]) then                 //檢查SQL
     begin
         SQLInfo.Lines.Add('SQL語句錯誤');
         ResultPage.ActivePageIndex:=1;
         exit;
     end;
   }

    for i:=SQLCount-1 downto 0 do
        ReturnCount:=ReturnCount+AddNewResult(SQLString[i]);    //運行SQL
     ResultPage.ActivePageIndex:=0;
     statusbar1.Panels[0].Text:='批查詢完成';
     statusbar1.Panels[2].Text:='共'+inttostr(ReturnCount)+'行';
     QueryPerformanceCounter(EndCount);
     ElapsedTime := (EndCount - StartCount)/Frequency;
     statusbar1.Panels[1].Text:='耗時:'+FloatToStr(ElapsedTime);


 except
   on e:exception do
   begin
         QueryPerformanceCounter(EndCount);
         SQLInfo.Lines.Add(e.Message);
         ResultPage.ActivePageIndex:=1;
         statusbar1.Panels[0].Text:='出現錯誤';
         statusbar1.Panels[1].Text:='???';
         statusbar1.Panels[2].Text:='???';
         exit;
   end;
 end;
end;

Procedure TSQLEditForm.CloseResult;
begin
      SQLInfo.clear;
   try
     while ResultFramePanel.ComponentCount>0 do
     begin
        if ((ResultFramePanel.Components[0] as tobject).Tag<>888) then continue;
          if (ResultFramePanel.Components[0] is TADOQuery) then
        begin
           ((ResultFramePanel.Components[0] as TADOQuery)).Close;
           ((ResultFramePanel.Components[0] as TADOQuery)).Free;
        end
        else if (ResultFramePanel.Components[0] is TDataSource) then
        begin
           ((ResultFramePanel.Components[0] as TDataSource)).Free;
        end
        else if (ResultFramePanel.Components[0] is TDBGrid) then
        begin
           ((ResultFramePanel.Components[0] as TDBGrid)).Free;
        end
        else if  (ResultFramePanel.Components[0] is TSplitter) then
        begin
           ((ResultFramePanel.Components[0] as TSplitter)).Free;
        end
        else if  (ResultFramePanel.Components[0] is TPanel) then
        begin
           ((ResultFramePanel.Components[0] as TPanel)).Free;
        end
     end;
   except
     showmessage('error');
   end;
    ResultFramePanel.Height:=300;
end;

Procedure TSQLEditForm.ResultPanelCanResize(Sender: TObject; var NewWidth,NewHeight: Integer; var Resize: Boolean);
begin
     if NewHeight<10 then Resize:=false
     else resize:=true;
end;


function TSQLEditForm.AddNewResult(SQLStr:String):integer;
begin
try
   ResultFramePanel.Height:=ResultFramePanel.height+100;
   ResultSplit:=TSplitter.Create(self.ResultFramePanel);
   ResultSplit.Parent:=self.ResultFramePanel;
   ResultSplit.Tag:=888;
   ResultSplit.Height:=20;
 //  ResultSplit.Top:=1000;
   ResultSplit.Color:=clGray;
   ResultSplit.Align:=altop;
   ResultSplit.MinSize:=1;
   ResultSplit.Top:=0;

   ResultPanel:=TPanel.Create(self.ResultFramePanel);
   ResultPanel.Parent:=self.ResultFramePanel;
   ResultPanel.Tag:=888;
 //  ResultPanel.Height:=100;
 //  ResultPanel.Top:=1100;;
   ResultPanel.Align:=altop;
 //  ResultPanel.Color:=clred;
   ResultPanel.OnCanResize:=ResultPanelCanResize;
   {ResultPanel.OnMouseDown:=ResultPanelMouseDown;
   ResultPanel.OnMouseMove:=ResultPanelMouseMove;
   ResultPanel.OnMouseUp:=ResultPanelMouseUp;
    }
    ResultADO:=TADOQuery.Create(self.ResultFramePanel);
    ResultADO.Tag:=888;
    ResultADO.Connection:=SQLBrowseManager.ADOConnection;

    ResultADO.SQL.Clear;
    ResultADO.SQL.Add(SQLStr);
    ResultADO.Open;

    ResultSource:=TDataSource.Create(self.ResultFramePanel);
    ResultSource.Tag:=888;
    ResultSource.DataSet:=ResultADO;
    
    ResultGrid:=TDBGrid.Create(self.ResultFramePanel);
    ResultGrid.Parent:=self.ResultPanel;
    ResultGrid.Tag:=888;
    ResultGrid.Height:=150;
    ResultGrid.Align:=alClient;
    ResultGrid.DataSource:=ResultSource;
    
    SQLInfo.lines.Add('');
    SQLInfo.lines.Add('(所影響的行數為 '+inttostr(ResultADO.RecordCount)+' 行)');
    result:=ResultADO.RecordCount;
except
   result:=-1;
end;


end;


procedure TSQLEditForm.FormResize(Sender: TObject);
begin
    ResultFramePanel.Width:=ResultFrame.Width;
end;



procedure TSQLEditForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   CloseResult;
   action:=cafree;
end;

procedure TSQLEditForm.SQLTextChange(Sender: TObject);
begin
    statusbar1.Panels[5].Text:='行 '+inttostr(SQLText.CaretPos.x)+' ,列 '+inttostr(SQLText.CaretPos.y);
end;

procedure TSQLEditForm.FormCreate(Sender: TObject);
begin
    savetofilename:='';
end;

procedure TSQLEditForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var returnvalue:integer;
begin
   if SQLText.Modified then
   begin
       if savetofilename='' then
          returnvalue:=MessageDlg('"無標題"   文檔中的文本已修改,'+#13+'是否保存更改?', mtInformation,[mbYes,mbNo,mbCancel],0)
       else
          returnvalue:=MessageDlg('"'+ExtractFileName(savetofilename)+'"   文檔中的文本已修改,'+#13+'是否保存更改?', mtInformation,[mbYes,mbNo,mbCancel],0);
       case returnvalue of
        mrYes:begin SaveText; CanClose:=true; end;
        mrNo: CanClose:=true;
        mrCancel: CanClose:=false;
       end;

   end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品一区二区精品久久久| 麻豆一区二区99久久久久| 亚洲成av人片在www色猫咪| 久久久www成人免费毛片麻豆| 久久久国产一区二区三区四区小说 | 色94色欧美sute亚洲13| 欧美精品久久久久久久多人混战 | 国产亚洲成av人在线观看导航| 亚洲免费毛片网站| 国产精品正在播放| 日韩视频永久免费| 亚洲线精品一区二区三区八戒| av一区二区三区| 亚洲精品一区二区三区蜜桃下载| 午夜亚洲国产au精品一区二区| 风间由美一区二区三区在线观看 | 538在线一区二区精品国产| 综合婷婷亚洲小说| 国产成人久久精品77777最新版本| 91麻豆精品国产自产在线观看一区| 国产精品福利一区二区三区| 麻豆视频一区二区| 欧美一区二区精品| 五月婷婷综合激情| 在线观看中文字幕不卡| 国产精品久久久久久久久快鸭 | 精品日韩欧美在线| 免费观看一级欧美片| 欧美日韩在线观看一区二区 | 欧美三级中文字幕在线观看| 亚洲品质自拍视频网站| 欧美日韩黄视频| 亚洲成年人影院| 欧美日韩极品在线观看一区| 亚洲高清免费视频| 欧美日韩卡一卡二| 亚洲精品ww久久久久久p站| 91免费国产在线| 亚洲一二三四在线| 欧美日韩高清一区二区不卡| 亚洲123区在线观看| 欧美精品aⅴ在线视频| 日本中文字幕一区| 日韩一级免费观看| 国产精品综合一区二区三区| 欧美国产日韩亚洲一区| 99久久er热在这里只有精品15| ●精品国产综合乱码久久久久| 99r国产精品| 亚洲国产精品综合小说图片区| 欧美精品三级日韩久久| 开心九九激情九九欧美日韩精美视频电影| 欧美v日韩v国产v| 国产成人免费视频一区| 亚洲嫩草精品久久| 91精品国产欧美一区二区成人| 久久精品国产99| 国产精品国模大尺度视频| 色呦呦网站一区| 日韩电影一区二区三区| 久久久亚洲精华液精华液精华液| 成人性生交大片免费看中文网站| 洋洋成人永久网站入口| 日韩一区二区不卡| 99久久99久久久精品齐齐| 午夜视频在线观看一区| 久久久久97国产精华液好用吗| 在线观看亚洲成人| 国内偷窥港台综合视频在线播放| 中文字幕一区日韩精品欧美| 欧美日韩国产另类不卡| 国产成人av电影在线播放| 专区另类欧美日韩| 日韩欧美久久久| 91在线播放网址| 麻豆精品久久久| 亚洲自拍另类综合| 久久久久久久一区| 91精品中文字幕一区二区三区| 成人免费观看av| 麻豆精品久久精品色综合| 亚洲男女毛片无遮挡| 精品999久久久| 9191久久久久久久久久久| 99免费精品视频| 激情欧美一区二区| 丝袜美腿亚洲色图| 亚洲精品国产第一综合99久久| 久久综合久久99| 911精品国产一区二区在线| 97精品国产97久久久久久久久久久久 | 2020国产精品自拍| 欧美精选一区二区| 91免费版在线看| 国产成人亚洲综合a∨婷婷图片| 亚洲chinese男男1069| 亚洲欧美日韩久久| 国产精品免费人成网站| 精品国产免费视频| 日韩美女视频一区二区在线观看| 99久精品国产| 国产黄人亚洲片| 石原莉奈一区二区三区在线观看| 中文字幕第一区二区| 欧美成人福利视频| 欧美一区二区三区视频在线| 日本精品裸体写真集在线观看| 国产成人午夜片在线观看高清观看| 日韩成人精品在线| 亚洲不卡av一区二区三区| 亚洲欧美国产高清| 亚洲欧美二区三区| 亚洲情趣在线观看| 亚洲乱码国产乱码精品精小说| 亚洲欧洲av在线| 亚洲欧洲综合另类| 亚洲中国最大av网站| 亚洲色大成网站www久久九九| 中文字幕一区二区三区精华液| 国产精品女主播在线观看| 国产精品无码永久免费888| 欧美国产日韩一二三区| 日韩伦理免费电影| 一区二区三区精品视频| 亚洲成人av中文| 青椒成人免费视频| 国产一区二区不卡| 成人天堂资源www在线| 99九九99九九九视频精品| 91老司机福利 在线| 欧美久久一二区| 精品日韩一区二区三区免费视频| 国产日韩av一区二区| 日韩美女视频一区二区| 视频一区二区三区中文字幕| 日本不卡一二三| 国产精品一区二区三区99| 成人不卡免费av| 在线观看视频一区二区| 91.xcao| 国产午夜精品久久久久久免费视| 国产精品女同一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 午夜伊人狠狠久久| 国产在线播精品第三| 成人h版在线观看| 欧美久久一二区| 国产精品另类一区| 午夜视频久久久久久| 国产精品资源在线观看| 在线观看一区二区精品视频| 日韩精品一区二区三区中文不卡 | 日日夜夜免费精品| 国产一区二区三区不卡在线观看 | 亚洲伦理在线免费看| 丝袜脚交一区二区| 成人一区二区三区在线观看| 欧美日韩国产高清一区| 国产欧美一区二区三区在线老狼| 亚洲免费观看视频| 精品一区二区在线视频| 色偷偷一区二区三区| 精品成人一区二区三区四区| 亚洲激情校园春色| 国产一区日韩二区欧美三区| 欧美调教femdomvk| 国产日韩亚洲欧美综合| 婷婷中文字幕一区三区| 成人精品电影在线观看| 欧美一级高清大全免费观看| 亚洲四区在线观看| 国产在线视视频有精品| 欧美久久高跟鞋激| 亚洲无线码一区二区三区| www.亚洲精品| 精品精品国产高清a毛片牛牛 | 亚洲欧美偷拍另类a∨色屁股| 精品一区二区免费在线观看| 欧美丰满美乳xxx高潮www| 中文无字幕一区二区三区| 美国三级日本三级久久99| 91福利国产成人精品照片| 亚洲色图制服丝袜| 国产精品一区二区三区乱码| 日韩免费高清av| 视频在线观看一区| 欧美精品在线一区二区三区| 亚洲女与黑人做爰| 成人av网站在线观看| 久久色视频免费观看| 国产美女主播视频一区| 欧美一区二区三区喷汁尤物| 性久久久久久久| 在线观看视频一区| 亚洲高清免费一级二级三级| 欧美三级在线播放| 亚洲国产综合91精品麻豆| 日本电影亚洲天堂一区| 亚洲乱码中文字幕| 欧美午夜影院一区|