欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP通过ODBC连接SQL Server 2008数据库的方法

程序员文章站 2022-03-26 08:49:36
创建数据库连接文件【dsn文件】的方法   创建 odbc dsn 文件 在创建数据库脚本之前,必须提供一条使 ado 定位、标识和与数据库通讯的途径。数据...

创建数据库连接文件【dsn文件】的方法

 

创建 odbc dsn 文件

在创建数据库脚本之前,必须提供一条使 ado 定位、标识和与数据库通讯的途径。数据库驱动程序使用 data source name (dsn) 定位和标识特定的 odbc 兼容数据库,将信息从 web 应用程序传递给数据库。典型情况下,dsn 包含数据库配置、用户安全性和定位信息,且可以获取 windows nt 注册表项中或文本文件的表格。

通过 odbc,您可以选择希望创建的 dsn 的类型:用户、系统或文件。用户和系统 dsn 存储在 windows nt 注册表中。系统 dsn 允许所有的用户登录到特定的服务器上去访问数据库,而用户 dsn 使用适当的安全身份证明限制数据库到特定用户的连接。文件 dsn 用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制 dsn 文件,可以轻易地从一个服务器转移到另一个服务器。由于以上原因,本主题中的示例将使用文件 dsn。

通过在 windows 的“开始”菜单打开“控制面板”,您可以创建基于 dsn 的文件。双击“odbc”图标,然后选择“文件 dsn”属性页,单击“添加”,选择数据库驱动程序,然后单击“下一步”。按照后面的指示配置适用于您的数据库软件的 dsn。

配置 microsoft access 数据库的文件 dsn

  1. 在“创建新数据源”对话框中,从列表框选择“microsoft access driver”,然后单击“下一步”。
  2. 键入您的 dsn 文件名,然后单击“下一步”。
  3. 单击“完成”创建数据源。
  4. 在“odbc microsoft access 97 安装程序”对话框中,单击“选择”。选择 microsoft access 数据库文件 (*.mdb),然后单击“确定”。

注意   由于性能和可靠性的原因,我们极力推荐您使用“客户-服务器数据库引擎”配置由这样一种 web 应用程序驱动的数据,这些 web 应用程序必须满足 10 个以上的用户的同时访问。尽管 asp 可以使用任何 odbc 兼容的数据库,但它是为使用客户-服务器数据库而设计的,而且经过了严格的测试,这些数据库包括 microsoft ® sql serveroracle 等。

asp 支持共享文件数据库(如 microsoft ® access microsoft ® foxpro)作为有效的数据源。尽管在 asp 文档中的一些示例使用共享文件数据库,但我们建议只将此类数据库引擎用于开发或有限的配置方案。共享文件数据库可能无法很好地适用于可满足高需求、高质量的 web 应用程序的客户-服务器数据库。

 

配置 sql server 数据库文件 dsn

注意   如果数据库驻留在远程服务器上,请与服务器管理员联系,获取附加的配置信息;下面的过程使用 sql server 的 odbc 默认的设置,它可能不适用于您的硬件配置。

  1. 在“创建新数据源”对话框中,从列表框中选择“sql server”,然后单击“下一步”。
  2. 键入 dsn 文件的名称,然后单击“下一步”。
  3. 单击“完成”创建数据源。
  4. 键入运行 sql 服务程序的服务器的名称、登录 id 和密码。
  1. 在“创建 sql server 的新数据源”对话框中,在“服务器”列表框中键入包含 sql server 数据库的服务器的名称,然后单击“下一步”。
  1. 选择验证登录 id 的方式。
  1. 如果要选择 sql 服务器验证,请输入一个登录 id 和密码,然后单击“下一步”。
  2. 在“创建 sql server 的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序和 ansi 标识,然后单击“下一步”。(要获取详细信息,请单击“帮助”。)
  3. 在对话框(同样名为“创建 sql server 的新数据源”)中,选择一种字符转换方法,然后单击“下一步”。 (详细信息,请单击“帮助”。)
  4. 在下一个对话框(同样名为“创建 sql server 的新数据源”)中,选择登录设置。
    注意   典型情况下, 您只能使用日志来调试数据库访问问题。
  5. 在“odbc microsoft sql server 安装程序”对话框中,单击“测试数据源”。如果 dsn 正确创建,“测试结果”对话框将指出测试成功完成。
    sql server 连接和安全信息
    如果您正在开发用于连接远程 sql server 数据库的 asp 数据库应用程序,应考虑以下问题:
    • 连接方案-   您可以选择 tcp/ip 套接字和命名管道的方法访问远程的 sql server 数据库。当使用命名管道时,因为在建立连接之前,数据库用户必须被 windows nt 确认,所以对只有适当的 sql server 访问身份而在该计算机上没有 windows nt 用户帐号的用户可能会被拒绝访问命名管道。作为一种替代方案,使用 tcp/ip 套接字的连接可直接连接到数据库服务器,而不必通过使用命名管道的中间计算机。因为使用 tcp/ip 套接字连接可直接连接到数据库 server,所以通过 sql server 的确认,用户就可以获得访问权,而不必通过 windows nt 的确认。
      注意   在连接到远程数据库时使用 tcp/ip 套接字可提高性能。
    • 安全性 -   如果您使用 sql server 集成或混合安全特性,并且 sql server 数据库位于远程服务器上,则不能使用 windows nt 请求/响应的确认。也就是说,不能将 windows nt 请求/响应身份证转发到远程计算机上,而只能使用基本身份验证,它根据用户提供用户名和口令信息进行。
      有关这一主题的详细信息,请参阅

      上的 microsoft sql server 技术支持主页。

 

配置 oracle 数据库文件 dsn

首先要确保 oracle 用户软件被正确地安装要创建 dsn 的计算机上。详细信息,请与服务器管理员联系或参阅数据库软件文档。

  1. 在“创建新数据源”对话框中,从列表框中选择“microsoft odbc for oracle”,然后单击“下一步”。
  1. 键入 dsn 文件的名称,然后单击“下一步”。
  1. 单击“完成”创建数据源。
  1. 输入用户名、密码和服务器名,然后单击“确定”。

注意   dsn 文件用 .dsn 扩展名,位于 \programs\common files\odbc\data sources 目录中。

有关创建 dsn 文件的详细信息,请访问 microsoft odbc web 站点:。

====================================================

访问数据库信息的第一步是和数据库源建立连接。ado 提供 connection 对象,可以使用该对象建立和管理应用程序和 odbc 数据库之间的连接。connection 对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。

要建立数据库连接,首先应创建 connection 对象的实例。例如,下面的脚本创建 connection 对象,接着打开数据库连接:

<%
 'create a connection object
 set cn = server.createobject("adodb.connection")
 'open a connection; the string refers to the dsn
 cn.open "filedsn=mydatabase.dsn"
%>

注意 无论在等号 (=) 之前还是之后,dsn 字符串都不能包含空格。

在这种情况下,connection 对象的 open 方法引用基于 dsn 的文件,其中包含关于数据库的位置和配置信息。也可以不引用 dsn,直接显式引用供应程序、数据源、用户 id 和密码。

连接过程

<%
 set cn = server.createobject("adodb.connection") '创建数据库连接对象
 set rscustomers = server.createobject("adodb.recordset") '创建数据库查询对象
 cn.open "filedsn=sqllink.dsn" '打开数据库
 strsql = "select username,password from [mydatabase].[dbo].[user] where username='duguying'"
 rscustomers.open strsql, cn  '运行sql语句
%>

处理数据库返回数据

set username1= rscustomers("username") '获取username字段的返回结果
 set password1= rscustomers("password") '获取password字段的返回结果
 do until rscustomers.eof 
 response.write username1 & " " & password1 & "<br>"
 rscustomers.movenext
 loop         '通过循环获取所有返回记录