bestlong 怕失憶筆記

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

如何得知 MySQL 資料庫的 Character Set and Collation ?

每個 MySQL 資料庫都各自有一個預設編碼 (database character set) 與一個預設定序 (database collation) 的設定值.
可以在建立資料庫時決定, 也可以透過 ALTER 來改變. 若是不確定設定值時可以透過下列方式取得:

下列指令可以查詢目前連線使用的資料庫設定值:

1
2
mysql> SHOW VARIABLES LIKE "character_set_database";
mysql> SHOW VARIABLES LIKE "collation_database";

若是有權限存取資料庫可以執行下列指令:

1
mysql> SHOW CREATE DATABASE DATABASE_NAME;

Leave a Comment

PHP執行MSSQL預儲程序時出現mssql_bind() [function.mssql-bind]: Unable to set parameter錯誤

出現問題的程式碼如下:

1
2
3
4
5
<?php
$sSQL = "select ..."; //超過 300 個字元的SQL指令
$proc = mssql_init('MyPagingRecordSet', $db_link);
mssql_bind($proc, '@strSQL', $sSQL, SQLVARCHAR, false, false) or print_r(error_get_last());
?>

執行的預儲程序

1
2
3
4
5
6
7
CREATE PROCEDURE MyPagingRecordSet
  @strSQL VARCHAR(1000),  --查詢 sql,如 select * from [user]
  @PageIndex INT = 1,     --查詢的頁號
  @PageSize INT = 30      --每頁顯示紀錄數
AS
--省略內容
GO

不過當 $sSQL 變數內只有很短的 SQL 命令時, 程式是可以正常執行的, 所以改成指定參數長度如下:

1
mssql_bind($proc, '@strSQL', $sSQL, SQLVARCHAR, false, false, 1000) or print_r(error_get_last());

執行結果還是一樣的錯誤訊息, 這應該是字串長度導致的問題, 再把程式改成

1
mssql_bind($proc, '@strSQL', $sSQL, SQLTEXT, false, false) or print_r(error_get_last());

這樣就可以正常執行了, 而 Stored Procedure 的參數的資料型別也可以改成

1
2
3
4
5
6
7
CREATE PROCEDURE MyPagingRecordSet
  @strSQL text,        --查詢 sql,如 select * from [user]
  @PageIndex INT = 1,  --查詢的頁號
  @PageSize INT = 30   --每頁顯示紀錄數
AS
--省略內容
GO

是否要改, 就看執行上是否有其他問題了, 目前沒改也可以執行.

Leave a Comment

免費的海報分割列印軟體 PosteRazor

國產商業軟體非常好色有個很方便的功能就是能將大尺寸的海報圖片分割列印成數張 A4 尺寸來拼貼,讓只有一般A4尺寸印表機的人也可以製作大過A4尺寸的海報,只不過非常好色是商業軟體需要付費購買。

而 PosteRazor 就可以將大型圖片(或海報)分割成你想要的尺寸,並轉成 PDF 檔讓你印出,不用大型印表機也可以列印出大型圖片(或海報)。使用非常簡單,只要五個步驟就可以完成動作。

http://posterazor.sourceforge.net/
http://sourceforge.net/projects/posterazor/

Comments (1)

踢掉 Windows server 遠端桌面使用者

在伺服器上開啟工作管理員,在使用者頁籤中會列出目前連線的使用者清單,選擇使用者後決定要進行中斷或登出。

另外若是有安裝終端機服務的管理程式,也可以執行 [終端機服務管理員] 來將選定的使用者進行中斷或登出的管理。

也可以用 TSDISCON 命令來踢人,可以參考微軟文件說明:

http://support.microsoft.com/kb/321705/zh-tw

tsdiscon 的命令語法:

tsdiscon SessionID | SessionName [/server:ServerName] /v

若是要直接踢遠端主機的人可以先用 net use 建立驗證連線,例如:

net use \\TSSERVER /user:XXXX *

然後就可以踢人

tsdiscon 1 /SERVER:TSSERVER

其中的 SESSION ID 可以用 1 或 2 視情況決定要踢掉哪一個。另外還有 0 是代表 Console 也就是主機的畫面。

Leave a Comment

Windows server 遠端桌面同時最多兩個工作階段連線人數已滿的解決方法

遠端桌面的使用者經常會沒有正常登出,而導致最多兩個工作階段的連線人數已滿而無法登入,又急需進行管理作業該怎麼辦呢?

此時就可以用管理者帳號連線到 console session 進行管理或是踢人離線,只要在遠端桌面連線的電腦名稱或 IP 位址的後方增加 /admin 的參數(舊版的參數是 /console)就可以登入了。這招可是身為 MIS 必需要會的技巧。

PS: Console session 就是伺服器的本機畫面,若是剛好有使用者登入使用,會詢問是否強制關閉給他強搶來用喔。

Comments (1)

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整