Sql 語法檢查

做語法檢查時要能連得上SQLServer,然後程序如下:
Private   Function   CheckSQL(ByVal   SQLs   As   String)   As   String
On   Error   GoTo   errHandle
        conTADO.Execute   ("SET   PARSEONLY   ON   "   &   SQLs)
        CheckSQL   =   "語法檢查通過。"
        conTADO.Execute   ("SET   PARSEONLY   OFF")
        Exit   Function
errHandle:
        CheckSQL   =   Err.Description
        conTADO.Execute   ("SET   PARSEONLY   OFF")
End   Function

其中conTADO是一個已連接好的ADO的Connection對象。
關鍵在於
SET   PARSEONLY   ON   和   SET   PARSEONLY   OFF,
執行了SET   PARSEONLY   ON   後,再執行的SQL語句,不會真的執行,只是預執行一下,有錯誤就會返回,完了以後再執行SET   PARSEONLY   OFF,數據庫就會恢復原態。



這一種更好一點

USE pubs
GO
PRINT 'Valid query'
GO
-- SET NOEXEC to ON.
SET NOEXEC ON
GO

-- Inner join.
SELECT a.au_lname, a.au_fname, t.title
FROM  authors a
INNER JOIN   titleauthor ta
   ON a.au_id = ta.au_id
INNER JOIN titles t
   ON ta.title_id = t.title_id

GO
-- SET NOEXEC to OFF.
SET NOEXEC OFF
GO
PRINT 'Invalid object name'
GO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章