VB数据库编程的几点心得

原创 2001年08月28日 08:11:00

 

一、ADODB.Connection的连接字符串(ConnectionString)的生成之道
  ADO是当前访问数据库的主流,但其ConnectionString往往有一大串,并且在访问不同的数据库(如Access和SQL Server),或访问方式(通过ODBC和OLE DB)不一样时,其具体参数的设置差异很大,这给连接字符串的编写增加了一定的难度。这里给大家介绍两种生成ConnectionString的方法,以便在没有现成的资料可供参考时,写出需要的连接字符串。
  方法一,使用ADODC控件的连接字符串向导生成连接字符串。
  用VB新建一标准EXE工程,先引用ADODC部件(选菜单[工程]/[部件...],在弹出的部件窗口中选Microsoft ADO Data Control),再将其加到Form1上,默认名为Adodc1;选中Adodc1,在其上单击右键,单击“ADODC属性”,选“使用连接字符串”,单击“生成”按钮,接下来根据该向导一步一步输入各相关的连接信息,“确定”后,在“使用连接字符串”下面的文本框中就是我们需要的内容。
  方法二,调用Ado连接窗口,获得连接字符串。
  用VB新建一标准EXE工程,引用Microsoft OLE DB Service Component 1.0 Type Libary和Microsoft ActiveX Data Objects 2.x Library(具体操作与ADODC的引用类似,只是通过菜单[工程]/[引用...]选),加一个TextBox到Form1,双击Form1,进入Code编辑区,清除VB自动生成的所有代码,再输入下述代码:

  Option Explicit

  Private Sub Form_Load()
      Dim dlTemp As MSDASC.DataLinks
      Dim cnTemp As ADODB.connection
   
      Set dlTemp = New MSDASC.DataLinks
      Set cnTemp = New ADODB.connection
   
      dlTemp.PromptEdit cnTemp
      Text1.Text = cnTemp.ConnectionString

      Set dlTemp = Nothing
      Set cnTemp = Nothing
  End Sub

  运行时会弹出一个与ADODC相似的生成连接字符串的向导,输入各相关数据,“确定”后在Form1的Text1中就得到我们需要的连接字符串。

二、汉字乱码问题
  笔者曾经在使用ADO向SQL Server 6.5中追加或修改数据后,发现查询出来的汉字都是乱码,最初以为是客户端的环境有问题,后来打开服务器端的数据库,发现其中的汉字也都是乱码,费了九牛二虎之力才找到原因:在追加和修改的过程中,ADO将字符进行了自动翻译(AutoTranslate),翻译后就成了乱码(Microsoft给我们开了一个“小小”的玩笑),解决的办法就是不让它乱翻译,具体操作如下:
  如果ADO通过OLE DB直接连接到数据库,则在Connection的ConnectionString中加入字符串:AutoTranslate=False;
  如果ADO通过ODBC连接到数据库,则在配置ODBC时,将“执行字符数据转换”一项的勾去掉。

三、在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。

VB数据库编程的几点心得

一、ADODB.Connection的连接字符串(ConnectionString)的生成之道   ADO是当前访问数据库的主流,但其ConnectionString往往有一大串,并且在访问不同的数...
  • yyllyy0910
  • yyllyy0910
  • 2013年08月26日 17:51
  • 550

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

一、ADODB.Connection的连接字符串(ConnectionString)的生成之道  ADO是当前访问数据库的主流,但其ConnectionString往往有一大串,并且在访问不同的数据库...
  • yanhuaju9
  • yanhuaju9
  • 2007年07月02日 08:51
  • 733

VB.net数据库编程pdf

下载地址:网盘下载  全书分成3部分共12章。第一部分包括3章,是基础部分,介绍VB.NET调用sQL语句操作Access、SQL Server数据的方法,每章后面都配有一个短小而综合的例子,在此基础...
  • cf406061841
  • cf406061841
  • 2018年02月01日 17:01
  • 31

VB6数据库编程的一点入门经验

很久很久以前写的一段文字,在软盘里放了N年。--飞利浦的软盘质量不错:)aphismail-job#yahoo.com.cn偶学VB有两三年的时间了,初学的时候,碰到不少困难,没少在BBS上提问,得到...
  • yachong
  • yachong
  • 2006年06月07日 17:29
  • 4777

浅谈工作中的几点小心得

最近,和同事几个人一起在研究Gearman的源代码。看到同事看源码飞速,顿时压力山大。自己自觉不自己的也在跟人家赶速度。但是,总感觉自己没啥收获,后面发现自己好好停下来,用自己的节奏看,反而看懂了不少...
  • zhouhong1026
  • zhouhong1026
  • 2013年12月17日 09:48
  • 1712

Vb中数据库编程对象——ADO

先来一张胜过千言万语的图:                    从上图我们可以清楚的看出ADO是数据库与应用程序交流的桥梁,他有承上启下的作用,对底层数据库的类型和上层数据消费者的类型支持性很强...
  • kanglix1an
  • kanglix1an
  • 2012年08月08日 21:30
  • 3151

学习vb的心得体会

vb是一门计算机及编程语言,也算是一项知识含量较高的东西。学习的这段时间,我明白了万事开头难,刚刚开始,遇到些困难没关系,慢慢来。编程时一个不断学习,不断积累的过程,编程的乐趣也正是存在于学习的过程。...
  • lv8830
  • lv8830
  • 2016年04月10日 17:31
  • 1087

数据库的开发经验总结

数据库的开发经验总结
  • wyzxg
  • wyzxg
  • 2010年10月22日 14:34
  • 1319

VB数据库编程

SQL功能与特性  其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:  (一)建立数据库的表格。(包括设置表格所可以使用之空间) ...
  • selen
  • selen
  • 2006年02月13日 10:15
  • 8774

编写VB打印控制程序的几点心得

Visual Basic(VB)给用户提供了可视化编程环境,因其简单易学、功能强大而得到了广泛的应用。VB提供了两种实现打印的方法。一般在对打印质量要求不高的场合,或者是编程项目的早期开发过程中,可以...
  • newp
  • newp
  • 2007年08月11日 12:50
  • 9974
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB数据库编程的几点心得
举报原因:
原因补充:

(最多只允许输入30个字)