[T-SQL] 亂數排序的分頁查詢方法

Standard

今天遇到一個新需求,某個案件由於希望列表各物件的露出是公平的,也就是說,按照編號、時間等方式排序都不公平,希望能夠用亂數隨機排序。
環境是 SQL SERVER 配合 ASP.NET,分頁使用 AspNetPager 控制項。

這個需求看似相當容易,使用 ORDER BY NEWID() 就好了呀,但列表還要分頁呢,使用者若按下一頁,第二頁又不該出現第一頁的物件。
想到很多方法 … 可以用臨時表作、也或許可以做一隻已經亂數排好的資料 xml 以 jQuery 方式載入呈現 …

不過在拜請 Google 大神後發現一個相當有趣的作法,以 T-SQL 將某個種子值以 md5 方式編碼,並作為排序的依據。此種子值可在使用者進入頁面後給予,並塞入 Session 中,確保此使用者翻頁時還是同一種子值。
Continue reading

[轉載] SQL Server 資料庫 Schema 檢視

Standard

找到一個不錯的 SQL Server 資料庫 Schema 檢視法,用 ASP 寫的。

原作原文在此:http://blog.l-penguin.idv.tw/archives/448/%E6%AA%A2%E8%A6%96-sql-server-%E8%B3%87%E6%96%99%E5%BA%AB-schema

依個人需求稍微修改的 Code 如下:
* 編碼問題
* 增加可以看檢視表的結構 (其實就是增加xtype=’V’)
* 清除結果

Continue reading

SQL Server Driver for PHP Version 1.1 ─ PHP 連 SQL Server & UTF-8 的微軟官方解決方案

Standard

之前曾經談過 odbtp 的解決方案,大半是為了編碼的問題吧,在 FreeBSD/Linux 環境下似乎用這種方式比較好。

也曾經試過 ADOdb 的方式,但好像連不上,底層似乎是使用 php 的 mssql_connect 吧,總之這方式就沒有繼續深究了。

之前提過的 odbtp 方案,若 PHP 在 Windows 環境時,odbtp 提供的相依版本似乎有些老舊。我想在 Windows 上就採用微軟自家的解決方案試試囉。

它就是:SQL Server Driver for PHP Version 1.1

Continue reading