bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Terminal Server 遠端桌面改 Port 方法

應該很多人都會使用這項功能,但是遇到網管封 Port 或擔心被人入侵,就必須改 Terminal Server 的 TCP port 了,預設是TCP 3389,修改方式如下:
1. 開始 -> 執行 -> 輸入 regedit -> 確定
2. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\Tds\Tcp中的PortNumber用十進位改成你想要的Port。
3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp中的PortNumber用十進位改成你想要的Port。
4. 記得修改防火牆上的設定,新增一個連接埠,輸入剛剛 TCP Port。
這樣便完成 Server 端設定。
至於 Client 端就只要在後面加上192.168.0.1:xxxx,xxxx為剛設的TCP Port,這樣就可以正常使用了。

Leave a Comment

[Delphi] 主程式 與 DLL 之間的全域變數問題

當程式檔案大小感覺有些大時,開始考慮分割程式,在網路上蒐集相關資料。

在 DLL 中如何共用一個全域變數,例如使用者登入後的使用者帳號(UserName)

把要共享的全域變數放在主程式裡,如 UserName,UserID,…等等
在主程式中寫兩個函數

Function GetCurUserName():PChar;
begin
Result := PChar(UserName);
end;

Function SetCurUserName(AUserName:PChar);
begin
UserName := AUserName;
end;

然後在專案檔 (.dpr) 裡輸出這兩個函數寫


{$R *.res}

Exports
GetCurUserName, SetCurUserName;

這樣在每個 DLL 裡就可以使用這兩個函數了

function GetCurUserName: PChar;
var
fGetCurUserName: function: PChar;
begin
@fGetCurUserName := GetProcAddress(GetModuleHandle(PChar(Application.ExeName)), ‘GetCurUserName’);
if Assigned(fGetCurUserName) then
begin
Result := fGetCurUserName
else
Result := ‘Admin’;
end;

Leave a Comment

MS SQL 使用 SQL 取得日期部份數值

在 MS SQL 6.5 中使用 getDate() 系統函數會取到精度達微秒的時間值,
所以若是只想取得只有 yyyymmdd 部分或是 yyyymmdd hh:mm:ss 部分的時間值就需要加工處理
我們可以利用 Convert 型別轉換函數來處理

語法:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

select GetDate()
,CONVERT(datetime,CONVERT(char(10), GetDate(),111),111) as YMD
,CONVERT(datetime,CONVERT(char(11), GetDate(),111) + CONVERT(char(8), GetDate(),108),111) as YMDHMS

其中若是 GetDate() = 2005-02-06 11:22:33.456
則 YMD = 2005-02-06
而 YMDHMS = 2005-02-06 11:22:33

另外在 MS SQL 2000 支援較多的 style 格式參數,可參考線上手冊。

如果在 SQL 2000 Server 環境經常使用的話,可以建立成使用者自定函數

CREATE FUNCTION dbo.getDateYMD
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(10), @dt,111),111) )
END

go

CREATE FUNCTION dbo.getDateYMDHMS
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(11), @dt,111) + CONVERT(char(8), @dt,108),111) )
END

這樣就可以用下列語法查詢

select getDate(), dbo.getDateYMD(getDate()), dbo.getDateYMDHMS(getDate())

Leave a Comment

MS SQL 6.5 如何得知 Client 連線到 Server 所使用的 NET Library ?

MS SQL Server 6.5:
在 Master.dbo.sysprocesses 資料表中的 net_library 欄位
NetLibrary Entry
================
SSNMPN60.dll –Named Pipes
SSMSSO60.dll –TCP/IP
SSMSRP60.dll –Multi-Protocol

Leave a Comment

[DB] MS SQL 6.5 安裝後預設會建立的 Device 與 Database

預設會建立的 Device 列表:

master
MSDBData
MSDBLog
TEMP_DB

預設會建立的 Database 列表:

master – 用於控制使用者資料庫以及 SQL Server 的運作。
model – 使用者資料庫樣板,所有新建立的使用者資料庫均會依此建立。
msdb – 存放各種 SQL Executive Services 相關的設定。
pubs – 為一個範例資料庫,安裝完後若不需要可直接刪除。
tempdb – 提供存放運算過程中產生的暫時性 Table 或其他需要儲存空間的運算。

上列的 Database 除了msdb 的 data 位於 MSDBData device 而 log 位於 MSDBLog device 外,其於 database 均位於 master device 上。

Leave a Comment

  • 近期留言

  • 標籤

  • 彙整