由于Access并不真正为高机能使用法式办事,所以一个但愿有多个同时毗连用户的站点必需摆设一个比Access更适合的数据源。本文将讲述若何从Microsoft SQL Server(一种企业级RDMS)中获取数据。
SQL Server完全版包罗了三个部门。第一个是引擎,用于现实组织数据以及针对号令响应进行读取和写入操作。第二个是开辟人员的东西软件包,用于对数据库进行操作,例如Query Analyzer和Data Transformation Services。最初一个是用于办理数据的东西,包罗备份法式和复制模式。
虽然完全版对大型企业来说有着不成估量的益处,可是良多开辟人员并不需要整套东西。幸运的是,Microsoft供给了一个SQL Server引擎的免费版,叫做SQL Server Express(SSE)。虽然它具有一个利用T-SQL号令来导入模式和数据的号令行东西(osql。exe),可是它还不包含在SQL Server完全版中具有的丰硕图形化的东西。不外,能够便利地利用Visual Studio或者Visual Web Developer来利用SSE开辟数据库。SSE有一个限制,即只处置当地的毗连(不成能在Web办事器之外的分歧机械上运转SSE)。对于具有某些嗜好的人以及学生的Web站点来说,SSE是一个很是适合的选择。数据库入门可能会利用基于SQL Server 2000的MSDE,而SSE则基于SQL Server的Yukon版。
除非有别的出格的申明,这里所引见的所有手艺均可使用于SQL Server的三种形式(完全版产物、SSE和MSDE),因而,通用术语SQL Server包含了这三种形式。
由于SSE只是一个引擎而并没有内置的开辟东西(到2004年),所以必需利用其他的东西来建立、点窜或者填凑数据库。为此我们将要利用的次要东西是Visual Studio或者Visual Web Developer,此中供给了Database Explorer作为其界面的一部门。请留意Database Exporer能够更改当地数据库中的数据和模式,可是它只能更改近程数据库中的数据(而不是布局)。数据库入门数据库入门在Visual Studio中,Database Explorer被称为Server Explorer,由于它包罗了一些处置非数据库办事器的附加功能。我们还将在本书的初步简单地利用osql。exe号令行东西来导入将在本书通篇利用的初始数据库。点窜数据库布局的第三种体例是打开Access,然后在SSE数据库中链接一个外部表。
利用SQL Server需要熟悉一些词汇。SQL Server安装在一台称为办事器(server)的机械上,而且能够通过其机械名来援用。若是SQL Server与请求软件位于统一台机械上,那么这台机械能够用(local)来援用。引擎能够在一台机械上安装多次,每一次安装称为一个实例(instance)。SSE安装一个名为(local)\SQLExpress的实例。在一个实例内,能够建立数据库(database)。数据库有一些具有字段(field)和记实(record)的表(table)。数据库还有供数据利用者利用的一组表、字段和束缚,称为视图(view)。存储过程(stored procedures,SPROC)能够对数据施行使命。一个SQL Server实例主动安装了一个用户名为sa的账户,当对用户利用SQL Server认证时,这个账户具有对所有对象进行所有动作的权限。在利用Windows认证(也称为夹杂认证)的时候,登录进Windows的用户也同时登录进了SSE。
花时间在研究数据库大将削减您设想利用数据的页面时的错误。在编写利用SQL Server的页面之前,请查抄您能否已控制了如下几类消息:
◆ 办事器、实例和数据库名称 确认办事器名称、实例和数据库名称的切当拼写。若是在办事器上只要一个完全版SQL Server的实例,那就不需要利用实例名了。可是即便在办事器上只要一个SSE的实例,也必需用MyServer\SQLExpress来显式地援用。请明白是将要测试现实数据仍是测试数据库的摆设备份。
◆ 平安消息 您需要晓得您的用户ID和暗码,以便对开辟数据库的拜候进行认证。同样地,请查抄SSE是利用Windows认证仍是SQL认证(第1章中的安装曾申明SSE该当利用Windows认证)。
◆ 数据库模式 理解数据库的模式。获得表和字段名、主动生成或锁定的字段、相关性以及束缚的切当拼写。细心留意对象名称中的下划线和空格。从数据库办理员那里查到是间接利用表仍是利用视图或者存储过程(SPROC)。利用后者将可能需要特殊数据类型的参数。用来查抄这些元数据的SQL语法枚举在本章的后面。
◆ 测试SQL语句(可选) 您可能会思疑SQL语句的语法或者逻辑。您将会发觉测试语句的无效方式是利用诸如SQL的Query Analyzer的开辟东西,而不是在这些语句第一次出此刻ASPX页面上时才测试。