基于ASP以odbc方式连接SQL Server数据库

时间:2021-12-04 19:51:36

一、先建立一个用来测试的数据库StuDB

第一步:启动SQL Server 2000或2005数据库,进入“SQL Server Enterprise Manager“管理界面,右键点击[服务器名]选择[新键][Database]进入”Database Porperties“界面。                               

第二步:在图1中的“Name“里输入数据库名StuDB。在”Automatically“前面的复选框里打勾,即使SQL Server能够自动地按需要增加数据库文件的大小。单击“确定”完成数据库的创建。

二、    接下来就以我们创建好的StuDB数据库为例,讲怎样用Odbc连SQL Server数据库的几种方法。

ASP脚本中可以通过三种方式访问数据库:
● IDC(Internet Database Connector)方式
● ADO(ActiveX Data Objects)方式
● RDS(Remote Data Service)方式

我最喜欢的是第二种方式,即ADO(灵活的数据对象)

下面来说说ActiveX数据对象(ADO)方式:

ADO(ActiveX Data Object),是一组优化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库解决方案,它作用在服务器端,提供含有数据库信息的主页内容,通过执行SQL命令,让用户在浏览器画面中输入,更新和删除站点数据库的信息。ADO的主要优点是易用、高速、占用内存和磁盘空间少,所以非常适合于作为服务器端的数据库访问技术。


ADO主要包括Connection,Recordset和Command三个对象, 它们的主要功能如下:
  Connection对象:负责打开或连接数据库文件;
  Recordset对象:存取数据库的内容;
  Command对象:对数据库下达行动查询指令,以及执行SQL Server的存储过程。

这种三步方式确实对ASP和JSP连接数据库都适用:

A连接:得到数据库入口

B获取数据集:得到表记录入口

C查询数据表:数据表操作第一步,得到想要的数据记录

 

利用ADO组件连接数据库有(红色字部分可能需要修改):

//第一种写法:
MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=123456;database=StuDB;"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING
SET RS=SERVER.CreateObject("ADOBD.recordset")
SQL="SELECT * FROM stu_table ORDER BY ID DESC"
RS.open SQL,CONN,3,3  

初始进行数据库连接时,我建议使用sa用户,并且在SQL server属性中设置(进入管理器)sql server 和windows混合登录模式,不然容易出现“访问的数据库无效”等错误

//第二种写法:(DSN连接)

MM_conn_STRING="DSN=STU;UID=SA;PWD=12345"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING
SET RS=SERVER.CreateObject("ADOBD.recordset")
SQL="SELECT * FROM stu_table ORDER BY ID DESC"
RS.open SQL,CONN,3,3   // 3,3是修改、删除、增加开关!

建立DSN数据源的方法网上有很多,也很简单,不过我建议使用“系统数据源”,不要用“用户数据源”或其他。DSN的名字最好和数据库名字不一样,比如数据库叫StuDB,但DSN叫STU。

(local)我本人习惯使用IP地址,如果是在自己的计算机上测试则使用127.0.0.1


//第三种 - 这种方法用在ACCESS中
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("asp.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn

总结:1、如果出现ADOBD.recordset之类的错误,说明连接代码有问题,查一查MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=123456;database=StuDB;"

2、如果出现“内部服务器错误或500错误”,应该是win2003 server IIS配置错误,处理步骤如下:

1)进入:控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 -> Active Server Pages -> 允许 2)控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 -> 在服务端的包含文件 -> 允许    (3)启用父路径:IIS—>网站—>属性的 主目录 —>配置—>选项-启用父路径 (4)IIS-网站-(具体站点)-(右键)权限-Users完全控制

3、如果出现上传组件无法传送大文件,请参考我写的其他博文或者email给我(onhour @ 126.com