熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

將Access移植到SQL Server

2013-11-15 14:47:54  來源: SQL Server 

  到SQL Server的Access開發人員面臨著很多困難然而最為棘手的問題是對動態SQL的處理在Access中將控件的行指定為一個字符串是相當普通的現象例如窗體上包含著很多的選擇器(SalesGroupState/Province/CantonBeginning Date以及Ending Date等等)Access開發人員一般都會檢查這些控件以查看哪些為Null然後編寫SQL語句以刪除這些Null值

  通過這種方法連接到SQL Server具有以下幾點的缺點

  所有的處理都在客戶端完成而不是在服務器中完成

  解析這些控件和處理SQLq語句的代碼顯得拖沓冗長

  這一方法容易導致SQL 混入攻擊(injection attacks)

  渴望擴展到SQL Server的Access開發人員必須解決兩個方面的問題

   識別所有非基於名稱查詢的記錄和行的數據源

   使用名稱查詢替代所有的查詢

  對於動態地處理查詢可以以如下所示的代碼處理

  SELECT *

  FROM SomeTables

  WHERE ColumnOfInterest = Forms("myForm")ControlOfInterest

  AND ColumnOfInterest = Forms("myForm")ControlOfInterest

  為了簡單起見我們假設Access窗體上只包含兩個控件Access方法將在代碼中解析控件的值然後通過使用非零值的方法處理每一動態SQL查詢

  這是一種沒有向導的方式你所需要的是一個存儲程序這一存儲程序被參數化以接收來自窗體上控件的所有數據例如假設以上給定的兩個控件存儲程序被自身的數據觸發如果數值為Null存儲程序就會“智能化地”執行

  這裡是實現這一過程的一個簡單技巧

  SELECT *

  FROM SomeTables

  WHERE ColumnOfInterest = OR ColumnOfInterest is NULL


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22337.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.