Http远程连接数据库技术说明资料.docx
《Http远程连接数据库技术说明资料.docx》由会员分享,可在线阅读,更多相关《Http远程连接数据库技术说明资料.docx(48页珍藏版)》请在冰豆网上搜索。
![Http远程连接数据库技术说明资料.docx](https://file1.bdocx.com/fileroot1/2022-12/11/c2572a03-20ed-4199-ad36-7d9cd11fff52/c2572a03-20ed-4199-ad36-7d9cd11fff521.gif)
Http远程连接数据库技术说明资料
使用Http远程连接数据库技术说明
7/21/2013yaojunxiques@163.Com
本人通过半年的努力,开发完成了此项技术
一、数据库Http连接技术实现功能:
1.用户能够像使用本地数据库一样操作远程数据库。
2.数据库在internet上是屏蔽的,他是通过IIS服务端口,采用特定的Http管道与用户端建立连接。
保障了数据库的安全性。
3.数据的发送接受采用分段技术,以整体虚拟,所需为实的方式满足用户的数据需求,适应了internet通讯的复杂环境。
4.用户的局域网操作和internet操作集成在一起,以同一个组件和同样的指令实现,可以在2种操作之间随时切换。
5.现有的C/S结构软件,使用数据库Http连接模块,可以增加internet操作功能。
二、DBnet组件的主要对象
1.Hpserver:
使用在服务器上,采用Http协议,为远程用户与本地数据库建立起通讯连接。
2.DtabaseEx:
数据库连接对象,可以连接局域网数据库,也可以与web服务上的HpServer对象通讯,从而访问远程数据库。
3.RecordsetEX:
查询数据库所得的记录集对象,数据集只读不能编辑。
4.RecordsetByteOpt:
查询数据库所得的记录集对象,可以对记录集进行新增,修改。
处于internet通讯时,对含有大数据字段(image,bytes)的记录集需要采用小批量数据传送方式,用此对象获得。
5.HpException:
异常处理类
HpServer对象
使用在IIS服务上,采用Http协议,为远程用户与本地数据库建立起通讯连接。
属性
属性名称
类型
描述
BatchTraceTimeOut_millSecond
integer
客户端在执行数据库事务中,服务器等待客户端的响应时间,超过此数值,批处理事务失效(防止网络通讯产生异常),默认2分钟。
单位:
毫秒。
ConnectionString
String
与数据库连接的字符串。
字符串设置与ADODB.ConnectionString设置类似。
Connection
ADODB.Connection
只读,返回ADODB.Connection对象
CompressedData
integer
与客户端internet通讯时,是否采用数据压缩,以便减少数据流量。
默认是不压缩。
0:
不压缩;1:
压缩。
CommandTimeout_second
integer
数据库命令超时时间。
单位:
秒
ConnectTimeout_second
integer
数据库连接超时时间。
单位:
秒
CursorLocationType
ADODB.CursorLocationEnum
枚举
数据库记录集的位置类型。
默认CursorLocationEnum.adUseServer
DefaultOneSendRecordCount_Comm
integer
对于普通记录集,单次向客户端发送的记录数量。
DefaultOneSendRecordCount_Bytes
integer
对于含字段(bytes(),image)的大容量数据的记录集,单次向客户端发送的记录数量。
DefaultRecordCacheSize_Comm
integer
打开普通记录集,一次读到内存中的记录数量
DefaultRecordCacheSize_Bytes
integer
打开含字段(bytes(),image)的大容量数据的记录集,一次读到内存中的记录数量
InternetUserPort
String
1.与客户端通讯的接口号,客户端的UserPort须与服务端的UserPort一致,才能连接。
2.接口号字符串最多12位,英文字母或者数字,只能在ASCII码范畴内。
IsEndTrans
Boolean
数据库事务状态。
False:
事务在进行中;True:
事物不在运行。
IsShowErrToFile
Boolean
异常是否写入日志文件。
默认:
False
IsShowErrMsgBox
Boolean
异常是否弹出消息框。
默认:
False
LinkDbType
emDbLinkType
枚举
连接的数据库类型。
emDbLinkType枚举类:
SqlServerUsing=0OdbcUsing=1
AccessUsing=2OracleUsing=3
MySqlUsing=4
LogFilePath
String
日志文件路径
LogFileName
String
日志文件名称
State
ADODB.ObjectStateEnum
枚举
当前与数据库联络的状态。
i
方法
方法名称
特征
描述
RunClientRequest
功能
启动客户端应答程序
语法
FunctionRunClientRequest(ByValobjRequestAsSystem.Web.HttpRequest,ByValobjResponseAsSystem.Web.HttpResponse)AsBoolean
参数
objRequest:
收到客户端信息的HttpRequest对象
objResponse:
向客户端发送信息的HttpResponse对象
返回
True:
执行成功
Flase:
执行失败
OpenConn
功能
使用已经设置的连接字符串,连接数据库。
语法
FunctionOpenConn()AsBoolean
参数
返回
1.True:
数据库连接成功
2.Flase:
执行失败.
CloseConn
功能
关闭数据库连接
语法
FunctionCloseConn()AsBoolean
参数
返回
1.True:
数据库连接已经关闭
2.Flase:
执行失败.
Register
功能
注册使用
语法
SubRegister(ByValThisRegisterAsObject)
参数
ThisRegister:
注册对象
返回
事件
事件名称
特征
描述
ErrHappened
功能
程序执行异常,引发异常处理事件
函数
EventErrHappened(ByValobjExceptionAsObject,ByValeAsEventArgs)
参数
objException:
继承System.Exception
e:
参数集
DataBaseEx对象
数据库连接对象,可以连接局域网数据库,也可以与web服务上的HpServer对象通讯,从而访问远程数据库。
属性.
属性
类型
描述
ConnectionString
String
与局域网数据库连接的字符串。
字符串设置与ADODB.ConnectionString设置一样。
在internet连接时,此项不起作用。
Connection
ADODB.Connection
ADODB.Connection对象。
在internet连接时,返回nothing。
ConnectTimeout_second
integer
局域网数据库连接超时时间。
单位:
秒。
在internet连接时,此项不起作用。
CommandTimeout_second
integer
局域网数据库命令超时时间。
单位:
秒。
在internet连接时,此项不起作用。
CursorLocationType
ADODB.CursorLocationEnum
局域网数据库初始化记录集的游标类型。
默认adUseServer
在internet连接时,此项不起作用。
DefaultRecordCacheSize
integer
打开记录集,一次读到内存中的数量.
1.局域网CursorLocationType=adUseServer时,此项有效。
2.局域网CursorLocationType=adUseClient时,记录全部读到用户端,此项不起作用。
3.在internet通讯时,此项不起作用。
InternetUrl
String
连接的网页地址,在Internet连接时使用。
局域网通讯时,此项不起作用。
InternetUserPort
String
1.与web通讯的接口号,客户端的UserPort须与服务端的UserPort一致,才能连接。
2.接口号字符串最多12位,英文字母或者数字,在ASCII码范畴内,不允许有中文字符。
3.采用internet的通讯方式时,需要设置此接口号。
局域网通讯时,此项不起作用。
InternetSessionTimeOut_minute
integer
客户端响应的失效时间。
如超过失效时间向服务端发送信息,服务端将重新建立客户对象。
失效时间不能大于服务端session的失效时间,在Internet连接时使用。
局域网通讯时,此项不起作用。
InternetRequestTimeOut_millsecond
integer
请求发出的最长响应时间,超出退出请求,单位:
毫秒
局域网通讯时,此项不起作用。
IsEndTrans
Boolean
数据库批处理事务状态.
False:
事务在进行中;True:
事物不在运行。
IsShowErrMsgBox
boolean
出现异常时,是否弹出消息提示画面。
多为程序开发调试时使用。
默认:
false
IsShowErrToFile
Boolean
异常是否写入文件
默认:
false
LinkCommucationType
CommucationType
枚举
数据库通讯方式,选择采用局域网方式或者internet方式。
CommucationType枚举类:
LanCommucation=0
InternetCommucation=1
LinkDbType
emDbLinkType
枚举
连接的数据库类型
emDbLinkType枚举类:
SqlServerUsing=0
OdbcUsing=1
AccessUsing=2
OracleUsing=3
MySqlUsing=4
LogFilePath
String
日志文件路径
LogFileName
String
日志文件名称
State
ADODB.ObjectStateEnum
当前数据库操作状态。
在internet连接时,此项不起作用。
方法
方法名称
特征
描述
BeginTrans
功能
开始事务,后续命令逐个执行
语法
FunctionBeginTrans(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
事务开启成功
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
BeginTrans_InternetSql
功能
开始事务,后续命令可以批次执行
局域网连接时,等同BeginTrans;Internet连接时,后续命令可以批次执行,以减少与服务端的通讯次数。
语法
FunctionBeginTrans_InternetSql(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
事务开启成功
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
CloseConn
功能
断开数据库的通讯连接
语法
FunctionCloseConn(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
连接关闭成功
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
ConncetSQ
功能
使用传入的连接字符串,建立数据库通讯连接。
在internet连接时,此项不起作用。
语法
FunctionConncetSQ(ByValstrConnAsString,OptionalByValisThrowExpAsDBnet.ThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
1.strConn:
连接字符串,方式类似于Adodb.Connection.ConnectionString
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
连接成功
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
CommitTrans
功能
事务确认执行,完成后关闭事务。
必须与BeginTrans配套使用。
语法
FunctionCommitTrans(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
事务执行完成
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
CommitTrans_InternetSql
功能
事务全部执行,完成后关闭事务。
必须与BeginTrans_InternetSql配套使用。
语法
PublicFunctionCommitTrans_InternetSql(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
事务命令全部通过验证并完成执行.
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
Execute
功能
1.执行一条SQL语句对数据库的操作,如insert,update,delete
语法
FunctionExecute(ByValstrSqlAsString,OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
命令执行成功.
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
Execute_Array
重载
功能
1.同时处理多个SQL执行命令(单次最多4个sql文),
2.在internet操作时,多个SQL命令一起执行,可以减少通讯次数。
语法
Execute_Array(ByValstrSql0AsString,ByValstrSql1AsString,OptionalByValstrSql2AsString="",OptionalByValstrSql3AsString="",OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
strSql0:
一条SQL语句
strSql1:
一条SQL语句
strSql2:
可选,一条SQL语句
strSql3:
可选,一条SQL语句
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
命令执行成功.
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
Execute_Array
重载
功能
1.同时处理多个SQL执行命令(单次sql语句数量没有限制)
2.在internet操作时,多个SQL命令一起执行,可以减少通讯次数。
语法
FunctionExecute_Array(ByValarrSql()AsString,OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
arrSql():
SQL语句数组,数组下限从0开始
isThrowExp:
可选,默认值(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操作时,整个事务一次发送提交执行,可以减少通讯次数.
语法
FunctionExecute_Array_WholeBatch(ByValstrSql_0AsString,ByValstrSql_1AsString,OptionalByValstrSql_2AsString="",OptionalByValstrSql_3AsString="",OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
strSql0:
一条SQL语句
strSql1:
一条SQL语句
strSql2:
可选,一条SQL语句
strSql3:
可选,一条SQL语句
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
命令执行成功.
2.参数isThrowExp=NoThrow,执行失败做Rollback处理,返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败做Rollback处理,抛出异常类HpException,不会返回执行结果。
Execute_Array_WholeBatch
重载
功能
1.整个事务一次提交单独完整运行,已经包含(beginTrans,SQL语句和CommitTrans命令),采用SQL数组,可以包括无数个SQL语句.如果SQL语句验证失败,自动执行Rollback.
2.在internet操作时,整个事务一次发送提交执行,可以减少通讯次数.
语法
FunctionExecute_Array_WholeBatch(ByValarrSql()AsString,OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean
参数
arrSql():
SQL语句数组,数组下限从0开始
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.True:
命令执行成功.
2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
ExecuteEx
功能
执行SQL语句对数据库的操作,如select,返回RecordsetEx数据集对象
语法
FunctionExecuteEx(ByValstrSqlAsString,OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsRecordsetEx
参数
strSql:
‘select’SQL语句
isThrowExp:
可选,默认值(ThrowErr),程序出现异常会抛出。
返回
1.执行成功,返回RecordsetEx数据集对象。
2.参数isThrowExp=NoThrow,执行失败返回nothing,异常信息可用函数GetLasetErr获取。
3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。
ExecuteEx_Array
功能
1.使用多个sql文,同时获取多个RecordsetEx()数据集对象.单次最多5个sql文
2.返回RecordsetEx()数组
3.在internet操作时,一次获取多个数据集,减少通讯次数。
语法
FunctionExecuteEx_Array(ByValstrSql0AsString,ByValstrSql1AsString,OptionalByValstrSql2AsString="",OptionalByValstrSql3AsS