1、Http远程连接数据库技术说明资料使用Http远程连接数据库技术说明7/21/2013 yaojun xiques163.Com本人通过半年的努力,开发完成了此项技术一、数据库Http连接技术实现功能:1. 用户能够像使用本地数据库一样操作远程数据库。2. 数据库在internet上是屏蔽的,他是通过IIS服务端口,采用特定的Http管道与用户端建立连接。保障了数据库的安全性。3. 数据的发送接受采用分段技术,以整体虚拟,所需为实的方式满足用户的数据需求,适应了internet通讯的复杂环境。4. 用户的局域网操作和internet操作集成在一起,以同一个组件和同样的指令实现,可以在2种操作之
2、间随时切换。5. 现有的C/S结构软件,使用数据库Http连接模块,可以增加internet操作功能。二、DBnet组件的主要对象1. Hpserver:使用在服务器上,采用Http协议,为远程用户与本地数据库建立起通讯连接。2. DtabaseEx:数据库连接对象,可以连接局域网数据库,也可以与web服务上的HpServer对象通讯,从而访问远程数据库。3. RecordsetEX:查询数据库所得的记录集对象,数据集只读不能编辑。4. RecordsetByteOpt:查询数据库所得的记录集对象,可以对记录集进行新增,修改。处于internet通讯时,对含有大数据字段(image,bytes
3、)的记录集需要采用小批量数据传送方式,用此对象获得。5. HpException:异常处理类HpServer对象使用在IIS服务上,采用Http协议,为远程用户与本地数据库建立起通讯连接。属性属性名称类型描述BatchTraceTimeOut_millSecondinteger客户端在执行数据库事务中,服务器等待客户端的响应时间,超过此数值,批处理事务失效(防止网络通讯产生异常),默认2分钟。单位:毫秒。ConnectionStringString与数据库连接的字符串。字符串设置与ADODB. ConnectionString设置类似。ConnectionADODB.Connection只读,
4、返回ADODB.Connection对象CompressedDatainteger与客户端internet通讯时,是否采用数据压缩,以便减少数据流量。默认是不压缩。0:不压缩;1:压缩。CommandTimeout_secondinteger数据库命令超时时间。单位:秒ConnectTimeout_secondinteger数据库连接超时时间。单位:秒CursorLocationTypeADODB.CursorLocationEnum枚举数据库记录集的位置类型。默认CursorLocationEnum.adUseServerDefaultOneSendRecordCount_Comminteg
5、er对于普通记录集 ,单次向客户端发送的记录数量。DefaultOneSendRecordCount_Bytesinteger对于含字段(bytes(),image)的大容量数据的记录集,单次向客户端发送的记录数量。DefaultRecordCacheSize_Comminteger打开普通记录集 ,一次读到内存中的记录数量DefaultRecordCacheSize_Bytesinteger打开含字段(bytes(),image)的大容量数据的记录集 ,一次读到内存中的记录数量InternetUserPortString1.与客户端通讯的接口号,客户端的UserPort须与服务端的UserP
6、ort一致,才能连接。2.接口号字符串最多12位,英文字母或者数字,只能在ASCII码范畴内。IsEndTransBoolean数据库事务状态。False: 事务在进行中;True: 事物不在运行。IsShowErrToFileBoolean异常是否写入日志文件。默认: FalseIsShowErrMsgBoxBoolean异常是否弹出消息框。默认: FalseLinkDbTypeemDbLinkType枚举连接的数据库类型。emDbLinkType 枚举类:SqlServerUsing = 0 OdbcUsing = 1 AccessUsing = 2 OracleUsing = 3 MyS
7、qlUsing = 4LogFilePathString日志文件路径 LogFileNameString日志文件名称StateADODB.ObjectStateEnum枚举当前与数据库联络的状态。i方法方法名称特征描述RunClientRequest功能启动客户端应答程序语法Function RunClientRequest(ByVal objRequest As System.Web.HttpRequest, ByVal objResponse As System.Web.HttpResponse) As Boolean参数objRequest: 收到客户端信息的HttpRequest对象o
8、bjResponse: 向客户端发送信息的HttpResponse对象返回True: 执行成功Flase:执行失败OpenConn功能使用已经设置的连接字符串,连接数据库。语法Function OpenConn () As Boolean参数返回1.True: 数据库连接成功2.Flase:执行失败.CloseConn功能关闭数据库连接语法Function CloseConn() As Boolean参数返回1.True: 数据库连接已经关闭2.Flase:执行失败.Register功能注册使用语法Sub Register(ByVal ThisRegister As Object)参数This
9、Register:注册对象返回事件事件名称特征描述ErrHappened功能 程序执行异常,引发异常处理事件函数Event ErrHappened(ByVal objException As Object, ByVal e As EventArgs)参数objException:继承System.Exceptione: 参数集DataBaseEx对象数据库连接对象,可以连接局域网数据库,也可以与web服务上的HpServer对象通讯,从而访问远程数据库。属性.属性类型描述ConnectionStringString与局域网数据库连接的字符串。字符串设置与ADODB. ConnectionStr
10、ing设置一样。在internet连接时,此项不起作用。ConnectionADODB.ConnectionADODB.Connection对象。在internet连接时, 返回nothing。ConnectTimeout_secondinteger局域网数据库连接超时时间。单位:秒。在internet连接时,此项不起作用。CommandTimeout_secondinteger局域网数据库命令超时时间。单位:秒。在internet连接时,此项不起作用。CursorLocationTypeADODB.CursorLocationEnum局域网数据库初始化记录集的游标类型。默认adUseServ
11、er在internet连接时,此项不起作用。DefaultRecordCacheSizeinteger打开记录集,一次读到内存中的数量.1.局域网CursorLocationType= adUseServer时,此项有效。2.局域网CursorLocationType= adUseClient时,记录全部读到用户端,此项不起作用。3.在internet通讯时,此项不起作用。InternetUrlString连接的网页地址,在Internet连接时使用。局域网通讯时,此项不起作用。InternetUserPortString1.与web通讯的接口号,客户端的UserPort须与服务端的UserP
12、ort一致,才能连接。2.接口号字符串最多12位,英文字母或者数字,在ASCII码范畴内,不允许有中文字符。3.采用internet的通讯方式时,需要设置此接口号。局域网通讯时,此项不起作用。InternetSessionTimeOut_minuteinteger客户端响应的失效时间。如超过失效时间向服务端发送信息,服务端将重新建立客户对象。失效时间不能大于服务端session的失效时间,在Internet连接时使用。局域网通讯时,此项不起作用。InternetRequestTimeOut_millsecondinteger请求发出的最长响应时间,超出退出请求,单位:毫秒局域网通讯时,此项不起
13、作用。IsEndTransBoolean数据库批处理事务状态.False:事务在进行中;True:事物不在运行。IsShowErrMsgBoxboolean出现异常时,是否弹出消息提示画面。多为程序开发调试时使用。默认:falseIsShowErrToFileBoolean异常是否写入文件默认:falseLinkCommucationTypeCommucationType枚举数据库通讯方式,选择采用局域网方式或者internet方式。CommucationType枚举类: LanCommucation = 0 InternetCommucation = 1LinkDbTypeemDbLinkT
14、ype枚举连接的数据库类型emDbLinkType枚举类:SqlServerUsing = 0 OdbcUsing = 1AccessUsing = 2 OracleUsing = 3MySqlUsing = 4LogFilePathString日志文件路径 LogFileNameString日志文件名称StateADODB.ObjectStateEnum当前数据库操作状态。在internet连接时,此项不起作用。方法方法名称特征描述BeginTrans功能开始事务,后续命令逐个执行语法Function BeginTrans(Optional ByVal isThrow As ThrowExp
15、 = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 事务开启成功2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。BeginTrans_InternetSql功能开始事务,后续命令可以批次执行局域网连接时,等同BeginTrans;Internet连接时,后续命令可以批次执行,以减少与服务端的通讯次数。语法F
16、unction BeginTrans_InternetSql(Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 事务开启成功2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。CloseConn功能断开数据库的通讯连接语法Function C
17、loseConn(Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 连接关闭成功2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。ConncetSQ功能使用传入的连接字符串 ,建立数据库通讯连接。在internet连接时,此项不起作用。语法
18、Function ConncetSQ(ByVal strConn As String, Optional ByVal isThrowExp As DBnet.ThrowExp = ThrowExp.ThrowErr) As Boolean参数1.strConn: 连接字符串,方式类似于Adodb.Connection. ConnectionStringisThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 连接成功2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowE
19、xp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。CommitTrans功能事务确认执行,完成后关闭事务。必须与BeginTrans配套使用。语法Function CommitTrans(Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True:事务执行完成2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isTh
20、rowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。CommitTrans_InternetSql功能事务全部执行,完成后关闭事务。必须与BeginTrans_InternetSql配套使用。语法Public Function CommitTrans_InternetSql(Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 事务命令全部通过验证并完成执行.2.参数isTh
21、rowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。Execute功能1.执行一条SQL语句对数据库的操作,如 insert, update, delete语法Function Execute(ByVal strSql As String, Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数isThrowExp: 可选,默认值(ThrowErr),程序出
22、现异常会抛出。返回1.True: 命令执行成功.2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。Execute_Array重载功能1.同时处理多个SQL执行命令(单次最多4个sql文),2.在internet操作时,多个SQL命令一起执行,可以减少通讯次数。语法Execute_Array(ByVal strSql0 As String, ByVal strSql1 As String, Optional ByVal s
23、trSql2 As String = , Optional ByVal strSql3 As String = , Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数strSql0: 一条SQL语句strSql1: 一条SQL语句strSql2: 可选,一条SQL语句strSql3: 可选, 一条SQL语句isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 命令执行成功.2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数Get
24、LasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。Execute_Array重载功能1.同时处理多个SQL执行命令(单次sql语句数量没有限制)2.在internet操作时,多个SQL命令一起执行,可以减少通讯次数。语法Function Execute_Array(ByVal arrSql() As String, Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数arrSql(): SQL语句数组,数组下限从0开始isThro
25、wExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 命令执行成功.2.参数isThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。Execute_Array_WholeBatch重载功能1.整个事务一次提交单独完整运行,已经包含(beginTrans ,SQL语句和CommitTrans命令),最多包括4个SQL语句. 如果SQL语句验证失败,自动执行Rollback.2.在internet操作时,整
26、个事务一次发送提交执行,可以减少通讯次数.语法Function Execute_Array_WholeBatch(ByVal strSql_0 As String, ByVal strSql_1 As String, Optional ByVal strSql_2 As String = , Optional ByVal strSql_3 As String = , Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数strSql0: 一条SQL语句strSql1: 一条SQL语句strSql2: 可选,一条S
27、QL语句strSql3: 可选,一条SQL语句isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 命令执行成功.2.参数isThrowExp= NoThrow,执行失败做Rollback处理,返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败做Rollback处理,抛出异常类HpException,不会返回执行结果。Execute_Array_WholeBatch重载功能1.整个事务一次提交单独完整运行,已经包含(beginTrans ,SQL语句和CommitTrans命令),采
28、用SQL数组,可以包括无数个SQL语句. 如果SQL语句验证失败,自动执行Rollback.2.在internet操作时,整个事务一次发送提交执行,可以减少通讯次数.语法Function Execute_Array_WholeBatch(ByVal arrSql() As String, Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As Boolean参数arrSql(): SQL语句数组,数组下限从0开始isThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.True: 命令执行成功.2.参数i
29、sThrowExp= NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。ExecuteEx功能执行SQL语句对数据库的操作,如 select ,返回RecordsetEx数据集对象语法Function ExecuteEx(ByVal strSql As String, Optional ByVal isThrow As ThrowExp = ThrowExp.ThrowErr) As RecordsetEx参数strSql: select SQL语句i
30、sThrowExp: 可选,默认值(ThrowErr),程序出现异常会抛出。返回1.执行成功, 返回RecordsetEx数据集对象。2.参数isThrowExp= NoThrow,执行失败返回nothing,异常信息可用函数GetLasetErr获取。3.参数isThrowExp= ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。ExecuteEx_Array功能1.使用多个sql文,同时获取多个RecordsetEx()数据集对象. 单次最多5个sql文2.返回RecordsetEx()数组3.在internet操作时, 一次获取多个数据集, 减少通讯次数。语法Function ExecuteEx_Array(ByVal strSql0 As String, ByVal strSql1 As String, Optional ByVal strSql2 As String = , Optional ByVal strSql3 As S
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1