关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> Vb -> 数据库 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
DELPHI 中动态链接库的使用
利用Hook技术实现键盘监控
Delphi下汉字输入法的编程及使用
在Delphi中用拼音首字符序列来实现检索功能
在DELPHI中处理时间
Delphi 元件撰写常问问题
任意动态改变/添加网络设置中的 TCP/IP 的 DNS 地址
Delphi 3中Cookie的建立使用
Delphi4.0 开发WEBMAIL程序
用DELPHI制作留言板
 
【新品推荐】

  详细内容
 

vb应用程序访问sql server方法探讨
作者: 评价: 上站日期: 2001-11-24
内容说明:
来源:

[引言]

  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)的子集。

  应用程序准备好语句并送至jet,jet引擎(masjt200.dll)优化查询,载入驱动程序管理器并与之通讯,驱动程序管理器(odbc.dll)通地调用驱动器(sqlsrvr.dll)的函数,实现连接到数据源,翻译并向sql server提交sql语句且返回结果。 


方法2.用odbc api编程 


  odbc(open database connectivity)的思想是访问异种数据库的一种可移植的方式。与数据资源对话的公用函数组装在一个称为驱动程序管理器(odbc.dll)的动态连接中。应用程序调用驱动程序管理器中的函数,而驱动程序管理器反过来通过驱动器反过来通来驱动器(sqlsrvr.dll)把它们送到服务器中。 

方法3.使用vbsql对db库api编程 

  db库是sql server的本地api,sql server的visual basic库(vbsql)为visual basic程序员提供api。从一定意义上说,vbsql是连接visual basic程序到sql server的性能最好最直接的方式。 

方法1. 数据访问对象/jetvisual basic支持data access objects(daos)的子集。

  dao的方法虽然不是性能最好的管理客户机椃衿髦涞亩曰胺绞剑酚行矶嘤诺恪j褂?/font> 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编程,一般要用到以下一些函数。下面列出了常用的函数以及它们的功能。 


  下面的代码使用上面一些函数先登录到一个服务器数据库,并为随后的工作设置了语句句柄。 


global gihenv as long 


global gihdb as long 


global 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对话中,一般要用到以下这些函数。 





 

    函数    
 


功能 
 








    sqlallocenv 
 


初始化odbc环境,返回环境句柄 
 









    sqlallocconnect 
 


为连接句柄分配内存并返回连接句柄 
 









    sqlconnect 
 


连接一个sql数据资源 
 









    sqldriverconnect 
 


连接一个sql数据资源,允许驱动器向用户询问信息
 









    sqlallocstmt 
 


为语句句柄分配内存并返回语句句柄 
 









    sqlexecdirect 
 


把sql语句送到服务器 
 









    sqlfetchadvances 
 


到结果集的下一行(或第一行) 
 









    sqlgetdata 
 


从结果集的特定的一列取回数据 
 









    sqlfreestmt 
 


释放与语句句柄相关的资源 
 









    sqldisconnect 
 


切断连接 
 









    sqlfreeconnect 
 


释放与连接句柄相关的资源 
 









    sqlfreeenv 
 


释放与环境句柄相关的资源 
 
















  一般的db库api编程的过程是这样的:先通过调用sqlinit对db库进行初始化,再调用sqlconnection打开一个连接,然后就可做一些工作。

  下一页的代码是一个初始化db库并登录到服务器的通用例程。 

方法3.使用vbsql对db库api编程 


下面的代码是一个初始化db库并登录到服务器的通用例程。 


private sub initializeapplication() 


dblib-version=sqlinit() 


if dblib_version=""then 


msgbox"could not initialize dblib!exit application.",
mb_iconexclamation 


end 


end if 


end sub 


private function logintoserver() as integer 


logintoserver=succeed 


status%=sqlsetlogintime%(logintimeout) 


if gisqlconn< > 0 then 


sqlclose(gisqlconn) ’关闭已打开的连接 


gisqlconn=sqlopenconnection(gsservername,gsloginid,gspassword,
programname, programname) 


if gisqlconn< > o then 


liresult=sqluse(gisqlconn,"sales") 


else 


logintoserver=fail 


end if 


end function 


性能比较 


  以上三种访问sql server的方法各有各的特点。daos方法是基于对象的,因而便于使用,但是它从visual basic到sql server的最慢的方式。odbc api和vbsql方法从本质上讲是基于程序的。odbc api方法通用性好,允许最强的互操作性,编程简单,但速度慢于vbsql方法。vbsql方法通过vbsql控件,提供了重要的sql server前端应用程序所需的灵活性、强大功能和良好性能。它具有真正的事件驱动及错误处理能力,完全支持异步处理、游标和计算列等。这些都是vbsql方法超出其它方法的优势,但其编程稍复杂。至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。 

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> Vb -> 数据库 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0