在使用FlameRobin管理Firebird嵌入式數據庫的使用時
1. 要將嵌入的庫(即fbclient.dll, ib_util.dll, icudt30.dll, icuin30.dll, icuuc30.dll, firebird.msg, firebird.conf, intl目錄及udf目錄Copy到FlameRobin目錄內。
2. Register Server時,只給“Display Name”, 其他“空白”,即“Hostname”及“Port number”無需填寫任何東西。
3. Create new database.
2013年3月29日 星期五
2013年1月24日 星期四
RouterOS學習筆記1--基礎設定
在RouterOS中,可以使用setup指令作初始化或在IP>Address中使用add增加IP。之後,必須設置路由(Route),使RouterOS可以到達所要的網絡,其後才設定NAT或其他。
2012年10月26日 星期五
RouterOS Dynamic DNS
以下是freeDNS.afraid.org的Script
:global AFRinterface "ppp-out1"
:global AFRlastip
:global AFRip [ /ip address get [/ip address find dynamic=yes interface=$AFRinterface ] address ]
:if ( [:typeof $AFRlastip]="nothing" ) do={:global AFRlastip 0.0.0.0/0 }
:if ( [:typeof $AFRip]="nothing" ) do={:log info ("Afraid-DDNS: No ip address present on " . $AFRinterface . ", please check.")
} else={
:if ($AFRip != $AFRlastip) do={
:log info "AFR-DDNS: Sending UPDATE!"
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:global AFRlastip $AFRip
} else={
:log info "AFR-DDNS: No change"
}
}
:log info "AFR-DDNS: End"
以下是DynDNS
#定義 DynDNS 相關設定,以下自行修改:
#============================================================
:local DDNSUser "輸入DynDNS帳號"
:local DDNSPassword "輸入DynDNS密碼"
:local DDNSHost "輸入申請的網址名稱"
:local DDNSInterface "輸入網路介面名稱"
#============================================================
#以下程式如不了解,建議不要修改:
#------------------------------------------------------------------------------------------
#定義 IP 變數
:local DDNSIP
:global DDNSLastIP
#定義變數預設值
:if ([ :typeof $DDNSLastIP ] = nil ) do={ $DDNSLastIP "0.0.0.0" }
#取得網路介面 IP 位址
:set DDNSIP [ /ip address get [/ip address find interface=$DDNSInterface ] address ]
:set DDNSIP [ :pick $DDNSIP 0 [ :find $DDNSIP "/" ] ]
#判斷是否要更新 IP
:if ([ :typeof $DDNSIP ] = nil ) do={
:log error ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 未取得 IP 位址")
} else={
:if ($DDNSIP != $DDNSLastIP) do={
# 更新 DDNS IP
:local url "/nic/update?hostname=$DDNSHost&myip=$DDNSIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
/tool fetch address=members.dyndns.org src-path=$url mode=http user=$DDNSUser password=$DDNSPassword dst-path=("DDNS_DynDNS_$DDNSInterface")
:delay 1
# 檔案內容
:local filestr [ /file get "DDNS_DynDNS_$DDNSInterface" contents];
# 刪除檔案
:local filename [ /file find name="DDNS_DynDNS_$DDNSInterface"];
/file remove $filename
# 變更是否成功
:if ( [ :find $filestr "good"] = "0" || [ :find $filestr "nochg"] = "0" ) do={
:log warning ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 更新 IP 位址 " . $DDNSIP)
:set DDNSLastIP $DDNSIP
} else={
:log error ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 更新 IP 位址失敗 " . $DDNSIP)
}
}
}
#------------------------------------------------------------------------------------------
:global AFRinterface "ppp-out1"
:global AFRlastip
:global AFRip [ /ip address get [/ip address find dynamic=yes interface=$AFRinterface ] address ]
:if ( [:typeof $AFRlastip]="nothing" ) do={:global AFRlastip 0.0.0.0/0 }
:if ( [:typeof $AFRip]="nothing" ) do={:log info ("Afraid-DDNS: No ip address present on " . $AFRinterface . ", please check.")
} else={
:if ($AFRip != $AFRlastip) do={
:log info "AFR-DDNS: Sending UPDATE!"
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:log info [ /tool fetch address="freedns.afraid.org" host="freedns.afraid.org" mode=http src-path="dynamic/update.php\?修改為自己域名的編碼" keep-result=no]
:global AFRlastip $AFRip
} else={
:log info "AFR-DDNS: No change"
}
}
:log info "AFR-DDNS: End"
以下是DynDNS
#定義 DynDNS 相關設定,以下自行修改:
#============================================================
:local DDNSUser "輸入DynDNS帳號"
:local DDNSPassword "輸入DynDNS密碼"
:local DDNSHost "輸入申請的網址名稱"
:local DDNSInterface "輸入網路介面名稱"
#============================================================
#以下程式如不了解,建議不要修改:
#------------------------------------------------------------------------------------------
#定義 IP 變數
:local DDNSIP
:global DDNSLastIP
#定義變數預設值
:if ([ :typeof $DDNSLastIP ] = nil ) do={ $DDNSLastIP "0.0.0.0" }
#取得網路介面 IP 位址
:set DDNSIP [ /ip address get [/ip address find interface=$DDNSInterface ] address ]
:set DDNSIP [ :pick $DDNSIP 0 [ :find $DDNSIP "/" ] ]
#判斷是否要更新 IP
:if ([ :typeof $DDNSIP ] = nil ) do={
:log error ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 未取得 IP 位址")
} else={
:if ($DDNSIP != $DDNSLastIP) do={
# 更新 DDNS IP
:local url "/nic/update?hostname=$DDNSHost&myip=$DDNSIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
/tool fetch address=members.dyndns.org src-path=$url mode=http user=$DDNSUser password=$DDNSPassword dst-path=("DDNS_DynDNS_$DDNSInterface")
:delay 1
# 檔案內容
:local filestr [ /file get "DDNS_DynDNS_$DDNSInterface" contents];
# 刪除檔案
:local filename [ /file find name="DDNS_DynDNS_$DDNSInterface"];
/file remove $filename
# 變更是否成功
:if ( [ :find $filestr "good"] = "0" || [ :find $filestr "nochg"] = "0" ) do={
:log warning ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 更新 IP 位址 " . $DDNSIP)
:set DDNSLastIP $DDNSIP
} else={
:log error ("DDNS DynDNS: 網路介面 " . $DDNSInterface . " 更新 IP 位址失敗 " . $DDNSIP)
}
}
}
#------------------------------------------------------------------------------------------
2012年4月29日 星期日
i.Tech Clip R35藍牙耳機使用說明
開啟 : 按住按鈕 2 秒,畢一短聲,閃藍光
關閉 : 按住按鈕 3 秒,畢一長聲,閃紅光
重新配對 : 按住按鈕 8 秒,紅藍光交互閃爍,配對密碼 8888
關閉 : 按住按鈕 3 秒,畢一長聲,閃紅光
重新配對 : 按住按鈕 8 秒,紅藍光交互閃爍,配對密碼 8888
2012年3月31日 星期六
Smart Phone Web Camera介紹
可到以下網站了解:http://sourceforge.net/projects/smartcam/ 或 http://smartcam.sourceforge.net/
使mobile phone 的 CAM 可以 for 電腦
使mobile phone 的 CAM 可以 for 電腦
2011年4月17日 星期日
2010年7月10日 星期六
Delphi 建立Form的事件順序
Form的構造函數
OnCreate指示正在建立Form.
OnShow指示正在顯示Form,除了主窗體外,該事件還在將窗體的Visible設置為True或調用Show及ShowModal對象方法之後發生。如果窗體被隱藏,然後又顯示出來,也會觸發該事件。
OnActivate指定窗體成為了應用程序中的活動窗體。每當用戶從應用程序的一個窗體移到當前窗體時就會觸發該事件。
OnResize, OnPaint指定操作總發生在啟動時,但之後可能會重複很多次。
還有一個向窗體添加初始化代碼的方法:覆蓋構造器,通常做法如下所示:
constructor TForm1.Create(AOWner:TComponent);
begin
inherited Create(AOWner);
//extra initialization code
end;
在調用基類的Create對象方法之前,窗體的屬性還沒有裝載,而且內部組件還不能使用,為此,標準的方法是首先調用基類構造器,然後再進行定制操作。
OnCloseQuery.
OnClose: action參數 caNon--不允許窗體關閉。該值相當於設置OnCloseQuery事件的CanClose參數為False.
caHide--窗體沒有關閉,只是隱藏起來。
caFree--窗體被關閉,並釋放它所佔用的內存;如果是主窗體,應用程序將終止。
caMinimize--窗體沒有關閉,而是最小化。這是MDI子窗體的默認行為。
OnDestroy
OnCreate指示正在建立Form.
OnShow指示正在顯示Form,除了主窗體外,該事件還在將窗體的Visible設置為True或調用Show及ShowModal對象方法之後發生。如果窗體被隱藏,然後又顯示出來,也會觸發該事件。
OnActivate指定窗體成為了應用程序中的活動窗體。每當用戶從應用程序的一個窗體移到當前窗體時就會觸發該事件。
OnResize, OnPaint指定操作總發生在啟動時,但之後可能會重複很多次。
還有一個向窗體添加初始化代碼的方法:覆蓋構造器,通常做法如下所示:
constructor TForm1.Create(AOWner:TComponent);
begin
inherited Create(AOWner);
//extra initialization code
end;
在調用基類的Create對象方法之前,窗體的屬性還沒有裝載,而且內部組件還不能使用,為此,標準的方法是首先調用基類構造器,然後再進行定制操作。
OnCloseQuery.
OnClose: action參數 caNon--不允許窗體關閉。該值相當於設置OnCloseQuery事件的CanClose參數為False.
caHide--窗體沒有關閉,只是隱藏起來。
caFree--窗體被關閉,並釋放它所佔用的內存;如果是主窗體,應用程序將終止。
caMinimize--窗體沒有關閉,而是最小化。這是MDI子窗體的默認行為。
OnDestroy
訂閱:
文章 (Atom)