• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 將Access移植到SQL Server

    發表于:2007-06-23來源:作者:點擊數: 標簽:
    到SQL Server 的Access 開發人員面臨著很多困難,然而最為棘手的問題是對動態SQL 的處理。 在Access中,將控件的行指定為一個字符串是相當普通的現象。 例如,窗體上包含著很多的選擇器(SalesGroup,State/Province/C ant on,Beginning Date以及Ending Date

       

    到SQL Server的Access開發人員面臨著很多困難,然而最為棘手的問題是對動態SQL的處理。在Access中,將控件的行指定為一個字符串是相當普通的現象。

    例如,窗體上包含著很多的選擇器(SalesGroup,State/Province/Canton,Beginning Date以及Ending Date等等),Access開發人員一般都會檢查這些控件以查看哪些為Null,然后編寫SQL語句以刪除這些Null值。

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

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

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

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

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

    1.     識別所有非基于名稱查詢的記錄和行的數據源。

    2.     使用名稱查詢替代所有的查詢。

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

    SELECT *

    FROM SomeTables

    WHERE ColumnOfInterest = Forms("myForm").ControlOfInterest

    AND Column2OfInterest = Forms("myForm").Control2OfInterest

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

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

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

    SELECT *

    FROM SomeTables

    WHERE ColumnOfInterest = 12345 OR ColumnOfInterest is NULL

  • 原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>