CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

vb和sql server的问题

楼主mxkscorpion(爱林的人)2002-05-11 17:33:22 在 MS-SQL Server / 基础类 提问

小弟最近正在做一个题库,界面是用VB编写,而库是用Sql   Server   2000建设,请问各位大哥,vb和sql   server   如何结合,可有源代码?小弟在搞库的时候还遇到一个问题,就是往一个表中插入另外一个同种类型的表的数据,sql有一个命令可以每次插入一个表,但遇到一个问题,这两个表他们共同的那些数据插入之后并不会自动消失,造成了很大的冗杂,请问各位大哥,如何解决这个问题? 问题点数:20、回复次数:2Top

1 楼freezwy(网络自由人)回复于 2002-05-11 17:48:37 得分 10

VB应用程序访问SQL   Server方法探讨  
  摘要  
   
                本文讨论了Visual   Basic应用程序访问SQL   Server数据的几中常用的方法,分别说  
   
  明了每种方法的内部机理并给出了每种方法的一个简单的实例,最后比较了每种方法的  
   
  性能和优缺点。  
   
  引言  
   
                Microsoft   Visual   Basic(简称VB)作为一种面向对象的可视化编程工具,具有简单  
   
  易学的,灵活方便和易于扩充的特点。而且Microsoft为其提供了与SQL   Server通信的  
   
  API函数集及工具集。因此它越来越多地用作大型公司数据和客户机—服务器应用程序  
   
  的前端。与后端的Microsoft   SQL   Server相结合,VB能够提供一个鲁棒的、高性能的客  
   
  户机—服务器方案。  
   
  使用Visual   Basic作为前端开发语言,与SQL   Server接口有三种常用的方法,即:  
   
   
  *数据访问对象/Jet  
  *为ODBC   API编程  
  *使用SQL   Server的Visual   Basic库(VBSQL)为DB库API编程  
  本文将讨论这三种VB应用程序管理SQL   Server数据的方法,并比较每种方法的性  
  能和优缺点。  
      
  方法1.数据访问对象/JetVisual   Basic支持Data   Access   Objects(DAOs)的子集。DAO的  
   
  方法虽然不是性能最好的管理客户机—服务器之间的对话方式,但它确有许多优点。使  
   
  用DAOs访问SQL   Server的过程如下:应用程序准备好语句并送至Jet,Jet引擎  
   
  (MASJT200.DLL)优化查询,载入驱动程序管理器并与之通讯,驱动程序管理器  
   
  (ODBC.DLL)通地调用驱动器(SQLSRVR.DLL)的函数,实现连接到数据源,翻译并向SQL    
   
  Server提交SQL语句且返回结果。下面是一个用DAOs访问SQL   Server的VB实例。  
   
    
  'Form   Declarations  
  Dim   mydb   As   Database  
  Dim   mydynaset   As   Dynaset  
  Private   Sub   Form_Load()  
  Set   mydb=OpenDatabase("",Fa|se,Fa|se,"ODBC;DSN=Myserver;WSID=LCL;DATABASE=sa|es")  
  Set   mydynaset=mydb   CreateDynaset("Select*from   Customers")  
  End   Sub  
   
  上述例子是以非独占、非只读方式打开sales数据库,并检索Customers表中的所有字  
   
  段。OpenDatabase函数的最后一个参数是ODBC连接字符串参数,它指明了Microsoft    
   
  Access连接到  
  SQL   Server所需要知道的一些内容。其中“DSN”为数据源名,“WSID”为工作站名,  
   
  “DATABASE”为所要访问的数据库名。  
   
  方法2.用ODBC   API编程  
   
            ODBC(Open   Database   Connectivity)的思想是访问异种数据库的一种可移植的方式。  
   
  与数据资源对话的公用函数组装在一个称为驱动程序管理器(ODBC.DLL)的动态连接中。  
   
  应用程序调用驱动程序管理器中的函数,而驱动程序管理器反过来通过驱动器反过来通  
   
  来驱动器(SQLSRVR.DLL)把它们送到服务器中。  
   
  用ODBC   API编程,一般要用到以下一些函数。下面列出了常用的函数以及它们的功能。  
  函数   功能  
  SQLALLocEnv   初始化ODBC环境,返回环境句柄  
  SQLALLocConnect   为连接句柄分配内存并返回连接句柄  
  SQLConnect   连接一个SQL数据资源  
  SQLDriverConnect   连接一个SQL数据资源,允许驱动器向用户询问信息  
  SQLALLocStmt   为语句句柄分配内存并返回语句句柄  
  SQLExecDirect   把SQL语句送到服务器  
  SQLFetchAdvances   到结果集的下一行(或第一行)  
  SQLGetData   从结果集的特定的一列取回数据  
  SQLFreeStmt   释放与语句句柄相关的资源  
  SQLDisconnect   切断连接  
  SQLFreeConnect   释放与连接句柄相关的资源  
  SQLFreeEnv   释放与环境句柄相关的资源  
  下面的代码使用上面一些函数先登录到一个服务器数据库,并为随后的工作设置了语句  
  句柄。  
  G|oba|   giHEnv   As   Long  
  G|oba|   giHDB   As   Long  
  G|oba|   giHStmt   As   Long  
  Dim   myResult   As   integer  
  Dim   myConnection   As   Srting  
  Dim   myBuff   As   String*256  
  Dim   myBufflen   As   Integer  
  If   SQLA||ocEnv(giHEnv)<>SQL_SUCCESS   Then  
  MsgBox"A||ocation   couldn't   happen!"  
  End   if  
  if   SQL||ocConnect(giHEnv,giHDB)<>SQL_SUCCESS   Then  
  MsgBox   "SQL   Server   couldn't   connect!"  
  End   if  
  myConnection="DSN=myServer;UID=|c|;PWD=;APP=ODBCTest;WS|D=LCL;DATABASE=sales"  
  myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),  
  myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)  
  myResult=SQLA||ocStmt(giHDS,giHStmt)  
  myResult=SQLFreeStmt(giHStmt,SQL_COLSE)  
  rsSQL="Select*from   Customers   Where   City="Wuhan""  
  myResult=SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))  
   
  方法3.使用VBSQL对DB库API编程  
   
            DB库是SQL   Server的本地API,SQL   Server的Visual   Basic库(VBSQL)为Visual   Basic  
   
  程序员提供API。从一定意义上说,VBSQL是连接Visual   Basic程序到SQL   Server的性能  
  最好最直接的方式。VBSQL包含以下三个文件:  
  VBSQL.VBX   包含库函数,具有访问重要的消息和处理错误的能力  
  VBSQL.BI   包括所有的常量和变量说明  
  VBSQL.HLP   Windows帮助文件,使用VBSQL的指南  
  使用VBSQL时,必需将VBSQL.BI加入到Visual   Basic工程文件中,并确保VB程序运行时有  
  VBSQL.VBX文件。  
  一个典型的VBSQL对话中,一般要用到以下这些函数。  
  函数   功能  
  Sq||nit   在客户机上装载DB库  
  Sq|OpenConnection   打开服务器连接,返回连接句柄  
  Sq|Cmd   在客户机上建立批处理命令  
  Sq|Exec   向服务器提交批处理命令  
  Sq|rexu|ts   把客户机定位在第一条(或下一条)结果集的开端  
  Sq|NextRow   驱动每个结果集的行之间的循环  
  Sq|Data   访问一个特定列的数据  
  Sq|C|ose   切断特定的连接  
  Sq|Exit   切断所有找开的连接  
  Sq|WinExit   卸下DB库  
  一般的DB库API编程的过程是这样的:先通过调用SqlInit对DB库进行初始化,再调用  
  SqlConnection打开一个连接,然后就可做一些工作。下面的代码是一个初始化DB库并  
  登录到服务器的通用例程。  
  Private   Sub   |nitia|izeApp|ication()  
  DBL|B-VERS|ON●=Sq||nit●()  
  |f   DBL|B_VERS|ON●=""Then  
  MsgBox"Could   not   initia|ize   DBL|B!Exit   app|ication.",   MB_|CONEXCLAMAT|ON  
  End  
  End   if  
  End   Sub  
  Private   Function   LoginToServer()   As   integer  
  loginToServer=SUCCEED  
  Status%=Sq|SetloginTime%(loginTimeOut)  
  |f   giSq|Conn<>0   Then  
  Sq|C|ose(giSq|Conn)   '关闭已打开的连接  
  giSq|Conn=Sq|OpenConnection(gsServerName,gsLogin|D,gsPassword,Progr   amName●,ProgramName●)  
  |f   giSq|Conn<>o   Then  
  |iresu|t=Sq|Use(giSq|Conn,"Sales")  
  Else  
  LogintoServer=FA|L  
  End   |f  
  End   Function  
   
  性能比较  
   
              以上三种访问SQL   Server的方法各有各的特点。DAOs方法是基于对象的,因而便于使用,但是它从Visual   Basic到SQL   Server的最慢的方式。ODBC   API和VBSQL方法从本质上讲是基于程序的。ODBC   API方法通用性好,允许最强的互操作性,编程简单,但速度慢于VBSQL方法。VBSQL方法通过VBSQL控件,提供了重要的SQL`   Server前端应用程序所需的灵活性、强大功能和良好性能。它具有真正的事件驱动及错误处理能力,完全支持异步处理、游标和计算列等。这些都是VBSQL方法超出其它方法的优势,但其编程稍复杂。至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。  
  Top

2 楼xhusa(立风)回复于 2002-05-11 18:08:32 得分 10

用where   not   exists()判断Top

相关问题

  • VB和SQL Server的问题
  • vb and sql_server
  • vb+sql server(急)
  • VB连接SQL-SERVER
  • VB调用SQL SERVER
  • vb和SQL Server连接问题,急!!!!
  • vb+sql server的毛病
  • 高手请进(vb and sql server)
  • vb 如何连接sql server?
  • 请教!vb和sql

关键词

  • 函数
  • 连接
  • 语句
  • 应用程序
  • 服务器
  • 数据
  • 客户机
  • 驱动
  • 性能
  • vbsql

得分解答快速导航

  • 帖主:mxkscorpion
  • freezwy
  • xhusa

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo