在应用中, 经常要动态生成 Select 语句,典型的情况:

SqlString = "Select * from myBas where Name = " & Text1 & ""

好啦, 问题出现了, 如果在录入的 Text1 中有一个单引号,结果是把 SqlString 发给数据库时, 将出错!

 

其实要做的防范很简单, 增加一个函数:

 

FUNCTION CheckString (s) as String

pos = InStr(s, "")

While pos > 0

s = Mid(s, 1, pos) & "" & Mid(s, pos + 1)

pos = InStr(pos + 2, s, "")

Wend

 

CheckString="" & s & ""

END FUNCTION

 

以后在动态生成 Select 语句, 使用:

SqlString = "Select * from myBas where Name = " & CheckString(Text1)