以資料表 Employees 為範例的話,在 MS SQL 有下列兩種方式 :

1. Select

select name from syscolumns where id=object_id('Employees')

2. 執行系統預存程序

exec sp_help Employees

felixhuang 發表在 痞客邦 留言(0) 人氣()

假設資料表內有許多重覆的資料欄,但只有日期欄位不同,如果不想用 Group By 一個個分組,要如何列出資料中日期最大的呢?

範例:

Table:Order

ID Title Price Date
1 K1 100 2008/07/01
1 K1 200 2006/11/23
2 B1 300 2008/01/01
3 C2 400 2008/02/02

Select * From Order a Where Date = (Select Max(b.Date) From Order b Where a.ID = b.ID)

結果 :

ID Title Price Date
1 K1 100 2008/07/01
2 B1 300 2008/01/01
3 C2 400 2008/02/02

felixhuang 發表在 痞客邦 留言(5) 人氣()

[狀況]
執行 Visul Studio ASP.NET 2003 時出現 "Server Error in '/' Application.Access to the Path <Path> Is Denied" 錯誤

[錯誤訊息]
Server Error in '/' Application.
Access to the path "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\root\8c91a6b5\649b28ba" is denied. ('/' 應用程式發生伺服器錯誤。拒絕存取路徑 "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\root\8c91a6b5\649b28ba"。)

[解決方法]
可能是 IIS 安裝順序的問題,使 ASP.NET 沒有足夠的權限可以使用網站上的 Temporary ASP.NET Files 資料夾

1. 按一下 [開始],再按一下 [執行]。
2. 在 [開啟] 方塊中,鍵入 cmd,再按一下 [確定]。
3. 切換到磁碟機:\Windows\Microsoft.Net\Framework\v1.1.4322 資料夾,其中磁碟機 是安裝 Windows 的磁碟機。如果要執行這項操作,請在命令提示字元鍵入下列命令,其中磁碟機 是安裝 Windows 的磁碟機,再按下 ENTER:
cd磁碟機:\windows\microsoft.net\framework\v1.1.4322
4. 將可以使用 Temporary ASP.NET Files 資料夾的適當權限加入到 Network Service 群組。如果要執行這項操作,請鍵入下列命令,再按下 ENTER:
aspnet_regiis -i
5. 鍵入 exit,再按下 ENTER,結束命令提示字元

felixhuang 發表在 痞客邦 留言(0) 人氣()

[狀況]
在ASP.NET 執行 Process.Start(); 呼叫Windows應用程式時產生存取被拒的錯誤。

[發生錯誤的程式碼]
System.Diagnostics.Process.Start();

[錯誤訊息]
System.ComponentModel.Win32Exception: 存取被拒。
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at AcerPricing01ST.page.OP_buyingpricecalcMtn.OP_buyingpricecalcMtn.lbProcess_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\acerpricing01st\page\op_buyingpricecalc\op_buyingpricecalcmtn.aspx.cs:line 381"

[解決方法]
這是因為系統預設不允許從 IIS 執行 Windows應用程式,你可以從 : 
系統管理工具 > 服務 > 找到 IIS Admin > 內容 > 登入 > 勾選:允許服務與桌面互動 > 動新啟動 IIS Admin

felixhuang 發表在 痞客邦 留言(0) 人氣()

[狀況]
在 VS2003 ASP.NET 執行 Excel 元件時產生存取被拒的錯誤。

[發生錯誤的程式碼]
Excel.Application     excelapp=new   Excel.Application();

[系統訊息]
存取被拒。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.UnauthorizedAccessException: 存取被拒。

沒有授權 ASP.NET 存取要求的資源。請考慮將資源存取權授予 ASP.NET 要求識別。ASP.NET 有一個基本處理序識別 (通常在 IIS 5 上為 {MACHINE}\ASPNET,在 IIS 6 上為 Network Service),會在應用程式未模擬的情況下使用。如果應用程式是透過 <identity impersonate="true"/> 模擬,這個識別將會是匿名使用者 (通常為 IUSR_MACHINENAME) 或經過驗證的要求使用者。

若要取得 ASP.NET 寫入檔案的存取權限,請在檔案總管中以右鍵按一下檔案,選擇 [內容] 並選取 [安全] 索引標籤。按一下 [新增] 加入適當的使用者或群組。反白顯示 ASP.NET 帳戶,並且選取所需存取權限的核取方塊。

[UnauthorizedAccessException:   存取被拒。]  
  zwErp1.report.test.WebForm3.Button2_Click(Object   sender,   EventArgs   e)   in   e:\iis\zwerp1\report\test\webform3.aspx.cs:83  
  System.Web.UI.WebControls.Button.OnClick(EventArgs   e)   +108  
        System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)   +57  
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)   +18  
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)   +33  
  System.Web.UI.Page.ProcessRequestMain()   +1263  

[解決方法]
直接在執行命令列打上"dcomcnfg",然後在元件服務>我的電腦>DCOM 設定 內找到 "Microsoft Excel 應用程式",按"內容",裡面的安全性頁籤,把存取權.設定權.啟動權都設自訂然後給以下的帳號權限 :

IIS5 : ASPNET
IIS6 : Network Service(或許,沒試過)

PS : 如果你有在 Web.config 設定<identity impersonate="true"/>,上面的帳號要改為 IUSR_MACHINENAME

felixhuang 發表在 痞客邦 留言(2) 人氣()