一個維護MS SQL 的簡易程式, SQLMaintain 1.0.0.3 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
原有功能
1.查詢欄位屬性。
2.網路廣播功能。
3."取得網路上的芳鄰"採用樹狀結構。
4.網路芳鄰的資源顯示。
5.網路資源寫入。
6.檔案存成XML。
7.資料庫備份。
8.索引檔重整。
9.資料庫壓縮。
10.顯示ADO OpenSchema 資訊。 功能易動內容
1.增加顯示"登入MSSQL電腦資訊"。
2.增加"登入MSSQL電腦資訊"資料更新Timer。
3.增加"使用者慣性設定"。
4.變更為MDI方式呼叫Form。
5.瀏覽表格資料時,增加MS SQL語法重組及搜尋功能 發表人 - Wesly 於 2004/10/21 16:47:53 發表人 - Wesly 於 2004/10/21 17:02:59
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
請問連接資料庫時的參數要如何設定呢?
引言: 原有功能 1.查詢欄位屬性。 2.網路廣播功能。 3."取得網路上的芳鄰"採用樹狀結構。 4.網路芳鄰的資源顯示。 5.網路資源寫入。 6.檔案存成XML。 7.資料庫備份。 8.索引檔重整。 9.資料庫壓縮。 10.顯示ADO OpenSchema 資訊。 功能易動內容 1.增加顯示"登入MSSQL電腦資訊"。 2.增加"登入MSSQL電腦資訊"資料更新Timer。 3.增加"使用者慣性設定"。 4.變更為MDI方式呼叫Form。 5.瀏覽表格資料時,增加MS SQL語法重組及搜尋功能 發表人 - Wesly 於 2004/10/21 16:47:53 發表人 - Wesly 於 2004/10/21 17:02:59 |
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
如同在Delphi下設ADOConnection一般, 對不起此一程式是因為工作關係所開發的一個小程式, 都是對MS SQL 2000為對像, 其它的資料庫沒有測過, 會將所設定存在MS SQL Explorer.ini下, 是一個隱藏檔。
因為沒有手冊請自行測試,在某些畫面按右鍵會有一些功能。
我也能模擬MS SQL Enterprise Management 在備份時所開啟的備份檔目錄畫面, 但十分的慢, 特別是MS SQL Server所在的伺服器子目錄很多的時候更慘, 這是我所要改進的地方 希望能對你有所幫助.
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
存入網路資訊如下
procedure Tfm_NetTree.NetSavetoExcel; const Cols = 4; var index, i, j: Integer; Excel, workbook, worksheet: variant; GroupName, ComputerName, IP, MACAddress: string; FPath, FFileName: string; begin if (tvNet.Items.Count > 0) then begin try Excel := CreateOleObject('Excel.Application'); if Application.MessageBox('是否進入 Excel 編修模式?', '程式執行確認', MB_YesNo MB_DEFBUTTON1 MB_IconQuestion MB_ApplModal) = IDYES then Excel.Application.Visible := True else Excel.Application.Visible := False; workbook := Excel.WorkBooks.Add; worksheet := Excel.WorkSheets['sheet1']; try index := 1; j := 1; //寫入製表日期時間 worksheet.Cells[index, j] := '產生日期時間:'; Inc(j); Excel.WorkSheets[1].Columns[j].NumberFormatLocal := '@'; worksheet.Cells[index, j] := FormatDateTime('yyyy/mm/dd hh:mm', now); Inc(index); //標題 for j := 1 to Cols do case j of 1: worksheet.Cells[index, j] := '群組'; 2: worksheet.Cells[index, j] := '電腦名稱'; 3: worksheet.Cells[index, j] := 'IP'; 4: worksheet.Cells[index, j] := '網卡卡號'; end; Inc(index); //內容 j := 0; for i := 0 to tvNet.Items.Count - 1 do begin case tvNet.Items[i].Level of 0: begin GroupName := tvNet.Items[i].Text; j := 0; end; 1: begin ComputerName := tvNet.Items[i].Text; j := 0; end; 2: case j of 0: begin IP := tvNet.Items[i].Text; j := 1; end; 1: begin MACAddress := tvNet.Items[i].Text; j := 2; end; end; end; if j = 2 then begin for j := 1 to Cols do case j of 1: worksheet.Cells[index, j] := GroupName; 2: worksheet.Cells[index, j] := ComputerName; 3: worksheet.Cells[index, j] := IP; 4: worksheet.Cells[index, j] := MACAddress; end; Inc(index); end; end; //最適欄寬 for j := 1 to Cols do begin Excel.WorkSheets[1].Columns[j].AutoFit; Excel.WorkSheets[1].Columns[j].ColumnWidth := Excel.WorkSheets[1].Columns[j].ColumnWidth 1; end; // FPath := ExtractFileDir(Application.ExeName); FFileName := '網路資訊'; worksheet.SaveAs(FPath '\' FFileName '.xls'); beep; ShowMessage('已產生 "' FFileName '.xls' '" 檔案至 "' Fpath '" 目錄下!!'); finally if not Excel.Application.Visible then begin Excel.WorkBooks.Close; Excel.Quit; end; end; except ShowMessage('無法啟動Excel!!'); end; end else ShowMessage('請先取得網路資訊!!'); end;希望能對你有所幫助. |
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
廣播如下
procedure Tfm_NetTree.BoardCast; var i: Integer; SendMSG, ComputerName: string; doSend: Boolean; begin if Trim(edBoardCastMSG.Text) <> '' then begin if (tvNet.Items.Count > 0) then begin for i := 0 to tvNet.Items.Count - 1 do if tvNet.Items[i].Selected then begin doSend := False; if tvNet.Items[i].Level = 1 then begin doSend := True; ComputerName := tvNet.Items[i].Text; end; if doSend then begin SendMSG := 'Net Send ' ComputerName ' ' '''' edBoardCastMSG.Text ''''; winexec(PChar(SendMSG), SW_HIDE) end; end end else ShowMessage('請選擇廣播對像!!'); end else ShowMessage('請輸入廣播訊息!!'); end; |
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
取得網路樹
procedure Tfm_NetTree.GetNetTree; var tmp, tmp1, ResourceList: TStringList; i, j, k: Word; GroupNode, ComputerNode, ResourceNode: TTreeNode; IP, MACAddress: string; begin tmp := TStringList.Create; tmp1 := TStringList.Create; ResourceList := TStringList.Create; try tvNet.Items.Clear; GetGroupList(tmp); if tmp.Count > 0 then for i := 0 to tmp.Count - 1 do begin GetUsers(tmp.Strings[i], tmp1); GroupNode := tvNet.Items.AddChild(tvNet.Selected, tmp.Strings[i]); if tmp1.Count > 0 then begin for j := 0 to tmp1.Count - 1 do begin ComputerNode := tvNet.Items.AddChild(GroupNode, tmp1.Strings[j]); //取得IP值 IP := GetIP(tmp1.Strings[j]); tvNet.Items.AddChild(ComputerNode, IP); //取得IP Mac Address if Trim(IP) <> '' then MACAddress := GetMacFromIP(IP) else MACAddress := ''; tvNet.Items.AddChild(ComputerNode, MACAddress); //取得網路資源 ResourceNode := tvNet.Items.AddChild(ComputerNode, '網路資源'); if GetUserResource(tmp1.Strings[j], ResourceList) and (ResourceList.Count > 0) then for k := 0 to ResourceList.Count - 1 do tvNet.Items.AddChild(ResourceNode, ResourceList.Strings[k]); tvNet.Update; end; tmp1.Clear; end; end; finally tmp.Free; tmp1.Free; ResourceList.Free; end; end;希望能對你有所幫助. |
bhead811
一般會員 發表:13 回覆:18 積分:6 註冊:2003-05-29 發送簡訊給我 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
|
vicky097
一般會員 發表:0 回覆:1 積分:0 註冊:2006-12-22 發送簡訊給我 |
|
Wesly
中階會員 發表:14 回覆:103 積分:53 註冊:2002-05-31 發送簡訊給我 |
有人問我下列問題
ADO.OpenSchema取得資料結構時numeric和decimal的DATA_TYPE 在MS SQL都是131,欄位如何區分? 請問您是否在”MS SQL Manager”內看到欄位的區分呢?若是,那是我執行了MSSQL內的"預存程序""sp_columns ",指令您可以參考MS SQL 的 Online Help,這就為什麼我放在”MS SQL Manager”,而非”Schema”程式內,因為”Schema”是根據各家提供的資料轉出而得,而”MS SQL Manager”是專門執MS SQL的相關指令。 至於”還有為什麼你的程式連ORACLE就可取得欄位大小..我的就不行哩..都是使用OPENSCHEMA”這個問題,因為我手上沒有Oracle,所以沒有辦法回答您的問題。但是可以請告知是在那支程式執行的呢?(看Form Caption) Wesly 8/2
編輯記錄
Wesly 重新編輯於 2007-08-02 11:35:51, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |