上一篇日志讲述了如何在红旗Linux环境中运行ASP程序,也提供了一个简单的事例。接下来要做的,就是在该环境中,尝试用ASP连接到数据库中。因为不能连接数据库的ASP程序几乎是没有意义的。
已经知道,ASP是运行在iASP中间环境之上的。而iASP使用的是Java平台,所以,连接数据库的时候需要借用jdbc接口,而不是Windows地下的odbc接口。下面以连接MS SQL 2000服务器为例说明。当然,也可以连接到Mysql上的。
一、系统平台
ASP通常与两种微软的数据库连接,分别是Access和MS SQL。微软并没有提供对Access的jdbc接口,而Access的数据可以导入MS SQL中。所以,我们选择以MS SQL为例。
这里的MS SQL是单独运行在一台Windows 2000 Server系统上的,并不能基于红旗Linux。
系统平台:
数据服务器:Windows 2000 Server+SQL Server 2000 标准版
二、安装jdbc接口
在微软的网站上可以转到连接到SQL Server 2000和2005的jdbc接口包:
SQL Server 2000 Driver for JDBC SP3
SQL Server 2005 JDBC Driver 1.1
本地下载:
![[原]基于Linux使用ASP连接MSSQL](http://www.linuxfly.org/template/meSimple/images/download.gif)
1、安装jdbc驱动
# tar xvf mssqlserver.tar -C mssqlserver
# cd mssqlserver
# ./install.ksh
Please enter the installation directory: (/opt/msSQLjdbc)
Installing SQLServer 2000 Driver for JDBC….
Installation is Complete.
SQL Server 2000 driver for JDBC is installed in the following location: /opt/msSQLjdbc
安装程序比较简单,其实就是把msjdbc.tar解压到某个目录中。
2、配置iASP与SQL 2000的jdbc连接
要让ASP能够连接到MS SQL,必须先让iASP加载MSSQL jdbc的库文件。
修改/usr/iasp/iasp21/start-server.sh文件为:
※红色标识的就是增加的库文件
保存后,重启iASP代理模块:
# /usr/iasp/iasp21/start-server.sh &
三、测试
我模拟了一个最简单的数据库环境:
◎MS SQL 2000中有一个testdb数据库,包括一个叫Customers的表,内容如下:
dim Sql_Server,Sql_User,Sql_Pass,Sql_Data
Sql_Server="192.168.228.223"
Sql_User="linuxing"
Sql_Pass="redflag"
Sql_Data="testdb"
dim my_Conn,connstr
'下面是IIS下ASP连接MS SQL的语句
'connstr="PROVIDER=SQLOLEDB;DATA SOURCE="&Sql_Server&";UID="&Sql_User&";PWD="&Sql_Pass&";DATABASE="&Sql_Data
'下面则是iASP下,使用jdbc接口打开MS SQL的语句
'其中包括了定义MS SQL的数据库IP、连接数据库、用户名、密码等
connstr="DRIVER=com.microsoft.jdbc.sqlserver.SQLServerDriver;URL={jdbc:microsoft:sqlserver://192.168.228.223:1433};DatabaseName=testdb;User=linuxing;Password=redflag"
set my_Conn=server.CreateObject("ADODB.connection")
my_Conn.open(connstr)
sub CloseConn()
my_Conn.close
set my_Conn=nothing
end sub
%>
<table>
<tr>
<td>公司ID</td>
<td>公司名</td>
<td>联系方式</td>
</tr>
<%
Dim rs
Set rs=my_Conn.Execute("Select CustomerID,CompanyName,ContactName From Customers")
Do While Not Rs.Eof
%>
<tr>
<td><%=rs("CustomerID")%></td>
<td><%=rs("CompanyName")%></td>
<td><%=rs("ContactName")%></td>
</tr>
<%
rs.Movenext
Loop
Set rs=Nothing
%>