MY SOFTHOUSE
BOOKMARK
SOFTWARE
FRIEND
EMAIL
EDIT
SIGN OUT
HELP
 
  首页   资讯   网摘   软件下载   问知   动漫娱乐   软件供求   软件商城   论坛   
 资讯
 资讯 >> 编程语言 >> VB
email给朋友】 浏览字号:【 】 【打印】 【关闭窗口
相关资讯  
相关文摘  
相关软件  
 



VB数据库编程的几点心得(下)

上接:VB数据库编程的几点心得(上)

三、在SQL中处理含单引号的字符串

  VB在写SQL时,对字符串数据都用单引号引起来,如:

    Select * from MyTable Where ID='FirstID'

    若其中的FirstID为First'ID,即中间多出一个单引号,则上述写法将导致错误,解决的办法是将字符串中的每一个单引号用两双引号替换,下面的函数StrToSQL完成该功能,并用单引号将处理后的字符串引起来:

  Private Function StrToSQL(ByVal strValue As String) As String
       StrToSQL = "'" + Replace(strValue, "'", "''") + "'"
    End Function

  在写SQL时如有字符串数据,不管其中有没有单引号,都可以这样使用:

       strValue="First'Id"
    strSQL="Select * from MyTable Where ID="+StrToSQL(strValue)


四、只返回查询结果的前N个记录

  这是个老生常谈的问题,稍有这方面经验的人都会想到在SQL中用"Select Top"语句来完成此功能,如访问Access数据库时为:

  Select top 50 * From MyTable

    SQL Server 7.0和SQL Server 2000中都可以这样,但在SQL Server 6.5中不行,它不支持"Select Top",笔者采用了一个折衷的办法,使用SQL Server 6.5的"Set Rowcount"来限制记录数,例如:

   MyConnection.Execute "Set Rowcount 50"
   ......'执行查询
   MyConnection.Execute "Set rowcount 0"

   最后一行表示取消记录数据限制,这句千万不能少,因为记录数的限制在MyConnection的生存期都有效,所以其它的查询也会受此限制,最多只返回50条记录,笔者曾深受其害。

    本文中涉及的内容的测试平台为Visual Baisc 6.0 Enterprise+Service Pack 4。


出处: erwin.softwarechn.com 日期: 2005-4-25 好:6 一般:1 差:4
 
评论
  发表评论 投票: 一般
 
通知管理员(希望管理员根据你的评论修改软件信息)
  TrackBack
 
返回主页 | 关于我们 | 免责声明 | 联系广告| 读者投稿 | 友情链接 | 诚聘英才
  Copyright © 2004-2008 Forlink Technologies All Rights Reserved 
版权所有 时力科技 联系:客户服务中心 京ICP证030637号