使用Http通道远程连接数据库技术说明.docx

上传人:b****5 文档编号:11771787 上传时间:2023-04-01 格式:DOCX 页数:55 大小:30.57KB
下载 相关 举报
使用Http通道远程连接数据库技术说明.docx_第1页
第1页 / 共55页
使用Http通道远程连接数据库技术说明.docx_第2页
第2页 / 共55页
使用Http通道远程连接数据库技术说明.docx_第3页
第3页 / 共55页
使用Http通道远程连接数据库技术说明.docx_第4页
第4页 / 共55页
使用Http通道远程连接数据库技术说明.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

使用Http通道远程连接数据库技术说明.docx

《使用Http通道远程连接数据库技术说明.docx》由会员分享,可在线阅读,更多相关《使用Http通道远程连接数据库技术说明.docx(55页珍藏版)》请在冰豆网上搜索。

使用Http通道远程连接数据库技术说明.docx

使用Http通道远程连接数据库技术说明

数据库Http远程连接技术说明

7/28/2013

本人通过半年的努力,开发完成了此项技术

在当前流行的web浏览模式的情况下,仍然需要对客户端的个性化体验以及大批量数据的处理采用非web模式。

数据库Http连接技术打包封装了internet数据库操作的各项功能,采用多层防护保护数据库,同时客户端兼容数据库局域网操作的adodb方式,可以满足internet大批量数据传送以及客户端个性化开发的要求。

一、数据库Http远程连接技术实现功能:

1.用户能够像使用局域网数据库一样操作internet数据库。

(适用各类数据库,如mysql,mssqlserver,access等)

2.数据库在internet上是屏蔽的,他是通过IIS服务,采用特定的Http管道与用户端建立连接。

多道防护可以有效保障数据库的安全性。

3.数据的发送接受采用分段技术,以整体虚拟,所需为实的方式满足用户的数据需求,适应了internet通讯的复杂环境。

4.用户的局域网操作和internet操作集成在一起,以同一个组件和同样的指令实现,可以在2种操作之间随时切换。

5.服务端提供了aspx二次开发的接口。

6.现有的C/S结构软件,使用数据库Http连接模块,可以增加internet操作功能。

二、与webservice的关系(数据库Http远程连接技术简称Dbnet)

相同点:

都是基于netframework以及IIS的架构,通过http通道实现数据通讯。

区别:

1.Webservice以XML数据格式传送数据,具有通用标准,但数据的冗余度较大;Dbnet

采用特定的数据结构,以stream的方法传送数据,数据较为精简。

2.Webservice传送的是数据实体,Dbnet在数据量大的时候可以采用数据对象的虚拟

化来传送数据(即传送数据对象的部分数据,但用户看到的是整个数据对象)。

3.Webservice没有对数据库的操作功能有专门的定制;Dbnet定制了数据库操作的各

项功能,用户端可以直接调用,同时还兼容adodb的局域网数据库的操作方法。

4.客户端使用Webservice,引用的是Webservice对象,需进行编译;客户端使用DBnet组件对象,引用的是网址,不需要编译。

三、DBnet组件的主要对象(数据库Http远程连接技术简称Dbnet)

主要对象

功能与描述

Hpserver

运行在服务器iis上,米用Http协议,为远程用户与本地数据库建立起通讯连接。

以aspx程序引用Hpserve对象,客户端访冋aspx页面,头现相互通讯。

DatabaseEx

操作功能可类似于adodb.connection

使用在客户端。

数据库连接对象,可以连接局域网数据库,也可以与web服务上的aspx页面,从而访问internet数据库。

RecordsetEx

操作功能可类似于adodb.recordset,不能对数据集编辑。

使用在客户端。

以DatabaseEx对象查询数据库,得到RecordsetEx记录集对象,数据集只读不能编辑。

RecordsetByteOpt

操作功能可类似于adodb.recordset,可以对数据集编辑。

使用在客户端。

以DatabaseEx对象查询数据库,得到RecordsetByteOpt记录集对象。

可以对该记录集进行新增,修改。

处于internet通讯时,对含有大数据子段(image,bytes)

的记录集需要采用小批量数据传送方式,用此对象获得。

HpFields

记录集所有字段的属性定义容器。

HpException

异常处理类,继续S.webException异常类

HpServer对象

运行在服务器iis上,采用Http协议,为远程用户与本地数据库建立起通讯连接以aspx程序引用Hpserve对象,客户端访问aspx页面,实现相互通讯。

属性

属性名称

类型

描述

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

对于普通记录集,单次向客户端发送的记录数量。

最小10

DefaultOneSendRecordCount_Bytes

integer

对于含字段(bytes(),image)的大容量数据的记录集,单次向客户

端发送的记录数量。

最小3

DefaultRecordCacheSize_Comm

integer

打开普通记录集,一次读到内存中的记录数量

DefaultRecordCacheSize_Bytes

integer

打开含字段(bytes(),image)的大容量数据的记录集,一次读到内

存中的记录数量

InternetUserPort

String

1.与客户端通讯的接口号,客户端的UserPort须与服务端的

UserPort一致,才能连接。

2.接口号字符串最多12位,英文字母或者数字,只能在ASCII码范畴内。

IsClientLoginOk

Boolean

用户端的登录信息是否通过验证。

默认:

true;不需要做自定义的验证。

如果设定false;服务端可

以调用事件ClientLogin,开发自定义验证函数。

确认OK再把IsClientLoginOk设定true。

IsEndTrans

Boolean

数据库事务状态。

False:

事务在进行中;True:

事物不在运行。

IsShowErrToFile

Boolean

异常是否写入日志文件。

默认:

False

IsShowErrMsgBox

Boolean

异常是否弹出消息框。

默认:

False

属性名称

类型

描述

LinkDbType

emDbLinkType

枚举

连接的数据库类型。

emDbLinkType枚举类:

SqIServerUsing=0OdbcUsing=1

AccessUsing=2OracleUsing=3

MySqlUsing=4

LogFilePath

String

日志文件路径

LogFileName

String

日志文件名称

State

ADODB.ObjectStateEnum

枚举

当前与数据库联络的状态。

i

方法

方法名称

特征

描述

RunClientRequest

功能

启动客户端应答程序

语法

FunctionRunClientRequest(ByValobjRequestAsSystem.Web.HttpRequest,ByValobjResponseAs

System.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:

参数集

返回

ClientCommand

功能

服务器接收到的用户端自定义命令

语法

EventClientCommand(ByValCommandNameAsString,ByValParameter1AsString,ByVal

Parameter2AsString,ByRefstrReturnValueAsString)

参数

CommandName接收到的用户端自定义命令号

Parameter1:

用户端自定义参数1

Parameter2:

用户端自定义参数2

strReturnValue:

服务端执行完事件,向用户端反馈的信息

返回

strReturnValue:

服务端执行完事件,向用户端反馈的信息

ClientLogin

功能

当lsClientLoginOk=false,用户登录是将引发此事件。

服务器可根据接收到的用户登录信息开发自定

义程序进行用户验证。

验证成功,,弓1用此事件,可以自定义用户登录验证,进一步保障服务端的数据库安全。

语法

EventClientLogin(ByValUserNumAsString,ByValUserPasswordAsString,ByRef

isClientLoginOkAsBoolean)

参数

UserNum:

用户登录号

UserPassword:

用户登录密码

isClientLoginOk:

用户信息验证的结果

返回

isClientLoginOk:

用户信息验证的结果。

返回True:

程序自动设定IsClientLoginOk=true;

返回False:

程序自动设定IsClientLoginOk=false。

DataBaseEx对象

操作功能可类似于adodb.connection。

使用在客户端。

数据库连接对象,可以连接局域网数据库,也可以与web服务上的aspx页面,从而访问internet数据库。

属性

类型

描述

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

日志文件名称

Number

integer

自动产生的编号,每个连接对象的编号不一样。

State

ADODB.ObjectStateEn

um

当前数据库操作状态。

在internet连接时,此项不起作用。

方法

方法名称

特征

描述

BeginTrans

功能

开始事务,后续命令逐个执行

语法

FunctionBeginTrans(OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean

参数

isThrowExp:

可选,默认值(ThrowErr),程序出现异常会抛出。

返回

1.True:

事务开启成功

2.参数isThrowExp=NoThrow,执行失败返回Flase,异常信息可用函数GetLasetErr获取。

3.参数isThrowExp=ThrowErr,执行失败抛出异常类HpException,不会返回执行结果。

BeginTrans_lnternetSql

功能

开始事务,后续命令可以批次执行

局域网连接时,等同BeginTrans;Internet连接时,后续命令可以批次执行,以减少与服务端的通讯次数。

方法名称

特征

描述

语法

FunctionBeginTrans_lnternetSql(OptionalByVaiisThrowAsThrowExp=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

参数

l.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_lnternetSql

功能

事务全部执行,完成后关闭事务。

必须与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(ByValstrSqlOAsString,ByValstrSql1AsString,OptionalByVaistrSql2

AsString="",OptionalByValstrSql3AsString="",OptionalByValisThrowAsThrowExp=ThrowExp.ThrowErr)AsBoolean

参数

strSqlO:

一条SQL语句

strSqll:

一条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(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1