问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库连接方式有哪些

发布网友 发布时间:2022-04-25 20:05

我来回答

3个回答

热心网友 时间:2022-04-07 10:50

在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使用的首选。由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。

在这种使用模式中,ASP程序无疑是最重要的,是沟通客户端和后台数据库之间的桥梁。在ASP程序中,通过VB Script,建立对Access数据库的连接,是客户能够访问后台数据库的前提。

一、建立Access数据库连接的常用方法

在ASP中建立对Access数据库连接的一般格式如下:

<%
DbPath=Server.MapPath(数据库名)
Set Conn=Server.CreatObject(“ADODB.Connection”)
Conn.Open “driver=;dbq=”& DbPath
Set rs=Server.CreatObject(“ADODB.Recordset”)
Rs.Open 数据表名或SQL指令,Connection对象,Recordset类型,锁定类型
… …
%>

它的各步骤及参数意义如下:

第一行程序:利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。例如数据库是Test.mdb,则该行程序成为:DbPath=Server.MapPath(“Test.mdb”)。

第二行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。

第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库:driver=;。另一个参数dbq= & DbPath,运算后等效于dbq=Server.MapPath(数据库名) ,是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。到这里,就已经打开了数据库名指定的数据库。如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。

第四行程序:建立一个ADO对象集中的Recordset对象,以便利用Recordset对象操作数据库(当然,这只是对数据库操作的多种方式之一)。执行这行后,rs就成为一个Recordset对象。

第五行程序:利用rs对象的Open方法打开数据库中的数据表。这其中有四个参数,其意义如下:

数据表名或SQL指令串:在这个参数里指定要打开的数据库内的数据表名称,或者是用SQL的Select指令串确定的数据表的指定范围数据,例如,数据库Test.mdb中有数据表Number,则该参数成为“Number”,注意引号不能丢;若想打开数据表Number中xh字段值小于90的数据记录,则该参数可能成为如下的形式:

“Select * From Number Where xh < 90”。

Connection对象:指定已经打开的数据库的Connection对象,在这里固定是Conn,注意无须引号的。

Recordset类型:表示打开数据表的方式,有四种选择。数字0表示只读方式,且当前记录只能下移;数字1表示可读写方式,当前记录可自由上下移动,但不能及时看到别的用户建立的新记录,除非重新启动;数字2表示可读写方式,当前记录可自由移动,而且可以及时看到别的用户增加的新记录;数字3表示只读方式,但当前记录可以自由移动。一般选择2为好,除非为了禁止数据被修改。

锁定类型:这个参数指定数据库的锁定功能。因为网络上的数据库都是多用户的,很可能同时有多个用户在操作数据库。为了避免错误,让同一时间只可能有一个用户修改数据,就要用锁定功能。有四种选择:数字1表示只读方式锁定,用户不能更改数据;数字2表示悲观锁定,当一个用户用rs对象开始修改数据时就锁定数据库,直到用户用rs.Update更新记录后,才解除锁定;数字3表示乐观锁定,只有在数据写入数据库中时候才锁定,不保险,慎用!数字4表示批次乐观锁定,只有在使用rs.UpdateBatch成批更新数据时候才锁定数据记录。属于很少使用的。一般地,使用悲观锁定比较安全,但是效率要低些。

二、使用Recordset对象操作数据

用上面的方法打开数据库,是利用了Recordset对象建立的数据库连接,然后的对数据操作,也要使用该对象。

用rs.open “数据表名”,Conn,2,2 方式打开数据表,就可以方便的对数据进行操作:

常见的操作对象:

rs.addnew :添加一个新记录在数据表末尾。

rs.delete :删除当前记录。

rs.eof :判断是否已过最后记录。

rs.bof :判断是否移过首记录。

rs.update :数据修改生效。

rs(“字段名”):当前记录指定字段的值。

从数据表中提取数据:用x=rs(“字段名”)的格式,提取数据表中当前记录指定字段的值。

向数据表中填入或修改数据:用rs(“字段名”)=数据值或变量的方式,修改当前记录指定字段的值。

三、使用SQL指令操作数据库

在使用SQL指令对数据库进行操作时,要用如下方式打开数据库和操作:

<%
DbPath=Server.MapPath(数据库名)
Set Conn=Server.CreatObject(“ADODB.Connection”)
Conn.Open “driver=;dbq=”& DbPath
Sql=操作数据库的指令串
Conn.Execute sql
… …
%>

四、使用DSN连接数据库

在以上连接数据库的方式中,都是在程序中指定数据库,指定ODBC驱动程序。如果数据源有变化,就需要修改程序。如果在系统级别上,预先定义好数据源DSN,就可以避免这个麻烦。

在定义DSN的过程中,就已经指定好了数据源需要的ODBC驱动程序,也指定好了数据库文件的实际路径和名字,我们在程序中,只需要引用预先定义的数据源名DSN即可。

设定义好的DSN为test,则打开数据库的方式为:

五、结束语

在ASP程序中,建立数据库的连接和访问数据库,有很多方式和技术细节,在此难以一一详述。实际上,对SQL Server数据库,DBF数据库,文本文件,电子表格文件等,也都可以很方便的打开和访问,与对Access数据库的访问大同小异而已。如果说方便,Access应该是首选。如果考虑安全保密性,SQL数据库更好些。使用系统数据源DSN的方式建立对数据库的连接,具有更大的灵活性,也更简便些。

热心网友 时间:2022-04-07 12:08

主要就是jdbc连接数据库,其他的就需要一些框架的支持了啊!

热心网友 时间:2022-04-07 13:42

一般有专用接口.
通用的如:oledb,odbc,ado
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
从陕西省富平县美原镇到河南洛阳多少过路费 陕西省渭南市富平县中通快递能到? 谁知道怎样从东莞汽车东站到东莞科技博物馆?谢谢 东莞市鸿福路路地铁站和东莞市南城图书馆相隔多远 在东莞,从市图书馆到南城鸿福居委会怎么走? 表带白色线脏了如何解决? 南方水稻田适合种植什么水果 联想笔记本电脑开机显示normal为什么联想笔记本电脑开机时显示Normalsta... 经典抒情散文精选(精选3篇) 子宫肌瘤是什么病 子宫肌瘤哪些东西不能吃 电信宽带能按月交费吗 收拾什么填词语 电信宽带能按月缴费吗 电信宽带能按月缴费吗 祝妈妈生日快乐的祝福语 身份证过期去哪里补办 电信宽带可以按月交费的吗? 可以包月的吗? 收拾得什么填成语 电信宽带可以按月交费的吗? 可以包月的吗? 数据库自然连接 宽带可以按月交吗 宽带可以按月交吗 数据库关系运算中可以先选择在连接吗? 谁知道数据库中的自然连接是怎么算的?我学C语言,那是公共基础知识。我看... 电信的宽带多少钱一年,可以按月交纳吗? 电信的宽带多少钱一年,可以按月交纳吗? 中国电信宽带可以按月缴费吗?每个月多钱? 身份证过期去哪里补办? 中国电信宽带可以按月缴费吗?每个月多钱? 数据库中 两个相同关系的自然连接运算 是什么意思? 电信宽带能按月交费吗 老母亲生日祝福词 小米路由3g刷固件必要吗 中国电信宽带能不能一个月一交费用? 老母生日祝福语 简短独特 热血传奇的网址是多少? 小米路由器3怎么刷机 数据库中的运算符 ——join运算符的作用。 数据库中专门的关系运算包括那三种? 各位我想了解电信宽带可以按月缴纳费用吗?知道的请告知一下啊? 收拾的是组什么词 数据库中的除法与连接运算有运算顺序么 收拾在字典的意思是什么? 网络数据库的选择,投影,连接运算 如何撰写项目可研报告中“风险分析 ” 数据库库中专门的关系运算,什么是自然连接? 请问身份证过期在哪里补办 收拾有哪几种意思,分别是什么 盛大传奇SF客户端网址多少? 数据库连接运算符 ||那个,输入进去报错 用的SQL SERVER2008