分享

关于SQL语句中的引号问题

 悟静 2009-07-24
在 VB&VBScript中访问数据库的时候最常用的是以下两种语句:
1、选择查询(select),返回结果集;
2、动作查询(update、insert、delete等),无结果集。
无论哪一种语句,经常需要根据用户的输入来构造符合 SQL语法的字符串,提交给连结对象或结果集对象来执行(open或 execute方法),在  VB&VBScript中,标记字符串变量内容用双引号,如:strSql="select * from UserList"
在组织字符串的时候要考虑将用户输入的单引号替换成两个连续的单引号,此时要用到Replace函数:
程序代码:
strSql="insert into UserList (UserName,Password) values (" &  replace(me.txtUserName.text,"'","''") &"," & replace(me.txtPassword.text,"'","''") & ")"
结果为:
程序代码:
insert into UserList (UserName,Password) values ('MouseFly','12''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''')
 
如果使用的是VBScript则me.txtUserName.text和me.txtPassword.text要换成相应的浏览器提交的内容,如request.form("UserName")和request.form("Password")。
如果赋值的字段类型是数字型的,则要去掉字符串两端的单引号,假设Password字段是数值型,并且用户输入的是“1234”,则(此处略去数字输入校验):
程序代码:
strSql="insert into UserList (UserName,Password) values (" & "''''''''''''''''''''''''''''''''" & me.txtUserName.text & "''''''''''''''''''''''''''''''''," & me.txtPassword.text & ")"
生成的结果为:
insert into UserList (UserName,Password) values (''''''''''''''''''''''''''''''''MouseFly'''''''''''''''''''''''''''''''',1234)
 
如果字段类型是日期型,在 ADO中和处理字符串差不多,只不过要注意日期型字段的格式,最好在组织 SQL字符串的时候对日期进行格式化保证年份是4位,如:
程序代码:
strSql="insert into UserList (UserName,Password,BirthDay) values (" & "''''''''''''''''''''''''''''''''" & me.txtUserName.text & "''''''''''''''''''''''''''''''''," & me.txtPassword.text & "," & "''''''''''''''''''''''''''''''''" & format(me.txtBirth.text,"yyyy-mm-dd") & "'''''''''''''''''''''''''''''''')"
生成的结果为:
insert into UserList (UserName,Password,BirthDay) values (''''''''''''''''''''''''''''''''MouseFly'''''''''''''''''''''''''''''''',1234,''''''''''''''''''''''''''''''''1975-01-15'''''''''''''''''''''''''''''''')

如果使用的是VBScript,对日期进行格式化使用FormatDatetime函数。
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hjh032722/archive/2008/11/18/3325439.aspx

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多