首页 > 精品范文库 > 1号文库
JSP连接SQL SERVER问题总结
编辑:清风徐来 识别码:10-882328 1号文库 发布时间: 2024-01-22 15:16:07 来源:网络

第一篇:JSP连接SQL SERVER问题总结

首先是SQL 202_数据库的安装问题,在此我主要讲些关于SQL 202_的版本与操作系统的兼容性问题:SQL 202_总共有7个不同版本,适应不同等级用户的需求。

我试了一下,在XP系统下只有“个人开发版”能正常安装而不出现错误,所以大家在安装时要注意,具体安装时的配置参照相关说明就可以了。

下面说明如何连接到SQL 202_数据库,首先当然是要下载JDBC驱动程序,最好去微软官方网站下载,然后将下载到的三个JAR包放入你的WEB应用的WEB-INF/lib/下。接下来编写程序进行测试:

/*********************************************** /* /*DBTest.java /* /******************************************* */

import java.sql.*;

public class DBTest {

Connection con;

Statement sta;

ResultSet rs;

String driver;

String url;

String user;

String pwd;

public DBTest()

{

driver = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;;

url

= “jdbc:microsoft:sqlserver:

//localhost:1433;DatabaseName =test”;

//test为数据库名

user

= “sa”;

pwd

= “sa”;

//请更改为你相应的用户和密码

init();

}

public void init()

{

try{

Class.forName(driver);

System.out.println(“driver is ok”);

con = DriverManager.getConnection(url,user,pwd);

System.out.println(“conection is ok”);

sta = con.createStatement();

rs = sta.executeQuery

(“select * from room”);

while(rs.next())

System.out.println

(rs.getInt(“roomNum”));

}catch(Exception e)

{

e.printStackTrace();

}

}

public static void main(String args[])

//自己替换[]

{

new DBTest();

} }

按道理讲,上边这段代码应该没错,可首先我们来看一下,如果sqlser服务器没有升级到sp3(在使用jdbc时,如果系统是xp或者202_务必要把sqlserver 升级到sp3,往上到处都有下的),我们看看运行结果:

driver is ok java.sql.SQLException: [Microsoft] [SQLServer 202_ Driver for JDBC] Error establis hing socket.at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source)

at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou rce)

at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S ource)

at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

at java.sql.DriverManager.getConnection(DriverManager.java:523)

at java.sql.DriverManager.getConnection(DriverManager.java:171)

at DbTest.init(DbTest.java:32)

at DbTest.(DbTest.java:25)

at DbTest.main(DbTest.java:46)Press any key to continue...出现上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接。如果升级到sp3则这个问题可以结决,我们再来看看升级之后,程序运行的结果:

driver is ok conection is ok java.sql.SQLException:

[Microsoft][SQLServer 202_ Driver for JDBC] [SQLServer]对

象名 ’room’ 无效。

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour ce)

at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState

(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.postImplExecu te(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal

(Unknown So urce)

at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)

at DbTest.init(DbTest.java:35)

at DbTest.(DbTest.java:25)

at DbTest.main(DbTest.java:46)Press any key to continue...在这儿,用户已经登陆上去,但是却不能访问里边的数据表,出现这个问题的原因在于sa用户为系统用户,它虽然能够登陆数据库,但是test数据库里边却没有这个用户的访问权限,所以,我们现在为这个数据库重新建立一个用户share,建立过程如下:

在test数据库中选重用户---〉新建用户--〉名称选择(这一步中有两个关键点:身份验证选sql身份验证,默认数据库选test)-〉建立新教色share,此时更改程序,将用户登陆名和密码修改一下,重新运行程序:

driver is ok conection is ok 1001 1002 1003 1004 1005 1006 Press any key to continue...这次顺利通过测试

其实这些小问题花了我一个晚上才解决,真是浪费时间,所以写下来希望能使遇到类似问题的朋友不要重蹈覆辙,在此提醒大家遇到问题时多上网查查,多在论坛里问问,这样你学到的会更多,更节省时间,更有效率。

总结:Sqlserve 和JDBC 的融合问题,关键涉及到sp3补丁(端口开放)还有用户问题,解决这两个问题之后,剩余的便是Sqlserver 操作问题了,还有一点在远程操作的时候,要把Sqlserver 组设置一下,在安全性里边亦将身份验证更改为Sqlserve 验证即可。

------------------------------------------------windows xp sp2下jsp连接sql server 202_

注意:由于博客的文本编辑带有html代码解释功能,本文中对代码做了一定的改动,把所有的<改成了#,所有的>改成了$,如果需要用代码可以用记事本的“替换”功能替换回来即可。基本信息:windows xp sp2、Tomcat5.0、J2SDK1.5、Sql server 202_开发版

一、安装JDK 这个没有什么好说的,需要注意的是JDK1.5和以前的版本有个不同点,它默认的安装目录在C:Program FilesJava目录下,由于路径名里有空格,所以可能会给以后的命令行执行有一定的影响,并且和以往的习惯也有些不同,所以建议安装到C盘目录下就可以了。我的路径是C:jdk1.5

二、安装Tomcat 一路NEXT下来就可以了,注意有会有一个设置用户名密码的提示。我是安装在C:Tomcat 5.0了。

三、安装SQL Server2000 注意在windos xp下只能装两个版本,一个是开发版,另一个好像是个人版,记不得了。装的时候也基本上是一路NEXT下来,不过有一个地方要选择是采用Windows NT验证方式,一种是采用混合验证模式,为了安全,建议采用后者。并且要给超级管理员sa设上密码。最重要的是,不要忘了给SQL Server 202_打上补丁。由于sql server 202_存在漏洞,我们宿舍楼的局域网就因为中毒机器太多而造成网络拥塞。在windows xp中就把1433端口屏蔽了。要启用这个端口,要安装一个sql server 202_的sp3补丁。

四、设置环境变量

path路径:在系统变量的path前面加上C:Tomcat 5.0bin;C:jdk1.5bin;classpath路径.;C:jdk1.5libdt.jar;C:jdk1.5libtools.jar;C:jdk1.5librt.jar;C:jdk1.5;C:Tomcat 5.0commonlib,其中的.代表当前路径,其它的可以简单的设为C:jdk1.5lib,但是最好还是一个一个列出来。注意这里你如果在连接数据库时用到的是JDBC-ODBC桥接的方式的话,还要把桥接的驱动的路径加在classpath里面。有一个细节,好像在jdk1.5中,这个驱动不在C:jdk1.5lib下,而是在C:jdk1.5jrelib的rt.jar中,可以适当的设置一下或者把这个文件拷贝到classpath能到达的地方。

java_home路径:C:jdk1.5,即是jdk的安装目录。

tomcat_home路径:C:Tomcat 5.0,即是tomcat的安装目录。catalina_home路径:C:Tomcat 5.0 catalina_base路径:C:Tomcat 5.0,这两个环境变量的作用是可以通过命令行方式来启动和关闭tomcat,方法是打开命令行提示窗口,键入startup就可以启动,键入shutdown就可以关闭了。注意不要强行关闭tomcat,因为既然给了一个关闭的方式必然有它的道理,为了安全起见,还是用shutdown来关闭较为合适。当然不设置这两个环境变量也可以,只不要启动时用鼠标来从开始菜单启动。

五、建立数据库表

建立一个数据库testdb,在它里面建立一个表users。里面有两列,name和password,数据类型都取默认的char类型就行了。注意在SQL SERVER中表的名字不能为user。否则会出现错误。

六、配置数据DSN 打开“控制面板->性能与维护->管理工具->数据源”,点击“系统DSN”,点击“添加”,数据驱动选择“SQL SERVER”,点击“完成”,在弹出的对话框的“名称”里填入此DSN的名称,比如test。“描述”可以不填,“服务器”选择本地,即(local)。点击“下一步”,将弹出一个新的对话框。选择“使用sql server验证”,在下方填入用户名和密码。点击“下一步”,在新弹出的对话框的上方,选中“更改默认的数据库为”,在下侧的下拉菜单里选择你要映射的数据库,这里我们选择testdb。点击“下一步”,再点击“完成”。在新的对话框下方有个“测试数据源”的按钮,点击它,如果出现“测试成功”则表示建立DSN成功。点击完成即可。注意以后在程序中访问数据库是根据这里的系统DSN的名称来访问数据库的,而非真实的数据库名,在这里即是通过test而非testdb。

七、写测试网页文件

这里我们写一个简单的功能,有两个页面,第一个页面adduser.htm负责与用户进行交互,它可以让用户输入用户名和密码,并且提交它,但是它自己不处理,而是由第二个页面文件处理。第二个页面为jdbc.jsp,它接受第一个页面传递过来的参数,然后把它插入到users表中,然后把表中所有的用户都检索出来并且显示它。把这两个文件放在一个文件夹jdbc中,在jdbc文件夹中新建一个文件夹,名称为WEB-INF,在它里面建一个web.xml文件,然后把jdbc文件夹放到tomcat的工作目录C:Tomcat 5.0webapps中。web.xml内容

#?xml version=“1.0” encoding=“ISO-8859-1”?$ #!DOCTYPE web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN” “http://java.sun.com/dtd/web-app_2_3.dtd”$ #web-app$ #display-name$My Web Application#/display-name$ #description$ A application for test.#/description$ #/web-app$ adduser.htm文件内容:

#html$ #head$ #title$Add User#/title$ #/head$ #body$ #form method=“POST” action=“jdbc.jsp”$ #p align=“center”$姓名

#input type=“text” name=“name” size=“20”$#/p$ #p align=“center”$密码

#input type=“password” name=“pwd” size=“20”$#/p$ #p align=“center”$

#input type=“submit” value=“提交” name=“B1”$#/p$ #/form$ #/body$ #/html$

jdbc.jsp文件内容: #html$

#head$#title$Add User to DB#/title$#/head$

#%@page import=“java.sql.*”%$

#%@page import=“com.microsoft.jdbc.sqlserver.SQLServerDriver”%$

#%@page import=“com.microsoft.jdbc.*”%$

#%@page import=“java.util.*”%$ #body$

#pre$ #% //Get parameters from request String name,pwd;int num;name=request.getParameter(“name”);pwd=request.getParameter(“pwd”);//add infomation to DB try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).newInstance();Connection con=DriverManager.getConnection(“jdbc:odbc:test”,“sa”,“like”);Statement stmt=con.createStatement();stmt.executeUpdate(“insert into users values('”+name+“','”+pwd+“')”);//query DB for display all users ResultSet rs=stmt.executeQuery(“select * from users”);//rs.first();out.println(“All user in DB!”);while(rs.next()){

out.print(“user name: ”);

out.print(rs.getString(“name”)+“

password: ”);

out.println(rs.getString(“password”));} num=stmt.getMaxRows();out.println(num);rs.close();stmt.close();con.close();}catch(Exception ex){

out.println(ex.getMessage());

} %$

#/pre$ #/body$ #/html$

八、测试效果

启动tomcat,启动浏览器,在浏览器的地址栏中键入http://localhost:8080/jdbc/adduser.htm,在出现 的网页中填入用户名密码,点击“提交”,即可跳到jdbc.jsp文件,列出此时数据库中所有的用户。

第二篇:小结SQLServer连接失败错误及解决

小结SQL Server连接失败错误及解决

在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。

一、客户端工具连接失败

在使用 SQL Server 自带的客户端工具(以企业管理器为例)连接 SQL Server时,最常见的错误有如下一些:

1、SQL Server 不存在或访问被拒绝

ConnectionOpen(Connect())

2、用户'sa'登录失败。原因:未与信任 SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

第一个错误“SQL Server 不存在或访问被拒绝”通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。一般说来,有以下几种可能性:

1、SQL Server名称或IP地址拼写有误;

2、服务器端网络配置有误;

3、客户端网络配置有误。

要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

首先,检查网络物理连接:

ping <服务器IP地址>

或者

ping <服务器名称>

如果 ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server。防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

如果ping <服务器IP地址> 成功而 ping <服务器名称> 失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常。有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:

1、使用记事本打开HOSTS文件(一般情况下位于C:WINNTsystem32driversetc).2、添加一条IP地址与服务器名称的对应记录,如:

172.168.10.24 myserver

也可以在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。

其次,使用 telnet 命令检查SQL Server服务器工作状态:

telnet <服务器IP地址> 1433

如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接;如果命令返回“无法打开连接”的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听。

接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道,是否启用了 TCP/IP 协议等等。我们可以利用 SQL Server 自带的服务器网络使用工具来进行检查。

点击:程序-> Microsoft SQL Server-> 服务器网络使用工具,打开该工具后看到的画面如下图所示:

从这里我们可以看到服务器启用了哪些协议。一般而言,我们启用命名管道以及 TCP/IP 协议。

点中 TCP/IP 协议,选择“属性”,我们可以来检查 SQK Server 服务默认端口的设置,如下图所示:

一般而言,我们使用 SQL Server 默认的1433端口。如果选中“隐藏服务器”,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。

检查完了服务器端的网络配置,接下来我们要到客户端检查客户端的网络配置。我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具。

点击:程序-> Microsoft SQL Server-> 客户端网络使用工具,打开该工具后看到的画面如下图所示:

从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道以及 TCP/IP 协议。

点击 TCP/IP 协议,选择“属性”,可以检查客户端默认连接端口的设置,如下图所示。

该端口必须与服务器一致。

单击“别名”选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库 Named Pipes。别名的设置与使用HOSTS文件有相似之处。

通过以上几个方面的检查,错误 1 发生的原因基本上可以被排除。下面我们再详细描述如何来解决错误 2。

当用户尝试在查询分析器里面使用sa来连接SQL Server,或者在企业管理器里面使用sa来新建一个SQL Server注册时,经常会遇到如图 2 所示的错误信息。该错误产生的原因是由于SQL Server使用了“仅 Windows”的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa)进行连接。解决方法如下所示:

1、在服务器端使用企业管理器,并且选择“使用 Windows 身份验证”连接上 SQL Server;

2、展开“SQL Server组”,鼠标右键点击SQL Server服务器的名称,选择“属性”,再选择“安全性”选项卡;

3、在“身份验证”下,选择“SQL Server和 Windows ”。

4、重新启动SQL Server服务。

在以上解决方法中,如果在第 1 步中使用“使用 Windows 身份验证”连接 SQL Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了 Windows 的身份验证;其次,即使使用了 Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为“自己把自己锁在了门外”,因为无论用何种方式,用户均无法使用进行连接。实际上,我们可以通过修改一个注册表键值来将身份验证方式改为 SQL Server 和 Windows 混合验证,步骤如下所示:

1、点击“开始”-“运行”,输入regedit,回车进入注册表编辑器;

2、依次展开注册表项,浏览到以下注册表键:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer]

3、在屏幕右方找到名称“LoginMode”,双击编辑双字节值;

4、将原值从1改为2,点击“确定”;

5、关闭注册表编辑器;

6、重新启动SQL Server服务。

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server。这是因为在 SQL Server 中有两个缺省的登录帐户:BUILTINAdministrators 以及 <机器名>Administrator 被删除。要恢复这两个帐户,可以使用以下的方法:

1、打开企业管理器,展开服务器组,然后展开服务器;

2、展开“安全性”,右击“登录”,然后单击“新建登录”;

3、在“名称”框中,输入 BUILTINAdministrators;

4、在“服务器角色”选项卡中,选择“System Administrators” ;

5、点击“确定”退出;

6、使用同样方法添加 <机器名>Administrator 登录。

以下注册表键

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode 的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份验证模式;该值为2,表示使用混合模式(Windows 身份验证和 SQL Server 身份验证)。

看完如何解决前两个错误的方法之后,让我们来看一下如图 3 所示的第三个错误。

如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。

要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因)。具体步骤为:

1、在企业管理器中,选择菜单上的“工具”,再选择“选项”;

2、在弹出的“SQL Server企业管理器属性”窗口中,点击“高级”选项卡;

3、在“连接设置”下的“登录超时(秒)”右边的框中输入一个比较大的数字,如 20。

查询分析器中也可以在同样位置进行设置。

二、应用程序连接失败

以上的三种错误信息都是发生在 SQL Server 自带的客户端工具中,在应用程序中我们也会遇到类似的错误信息,例如:

Microsoft OLE DB Provider for SQL Server(0x80004005)[DBNETLIB][ConnectionOpen(Connect()).]Specified SQL server not found.Microsoft OLE DB Provider for SQL Server(0x80004005)用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'.[Microsoft][ODBC SQL Server Driver]超时已过期.首先,让我们来详细看以下的示意图来了解一下使用 ODBC 和使用 OLE DB 连接 SQL Server 有什么不同之处。

从上图中,我们可以看出在实际使用中,应用程序创建和使用各种 ADO 对象,ADO 对象框架调用享用的 OLE DB 提供者。为了访问 SQL Server 数据库,OLE DB 提供了两种不同的方法:用于 SQL Server 的 OLE DB 提供者以及用于 ODBC 的 OLE DB 提供者。这两种不同的方法对应于两种不同的连接字符串,标准的连接字符串写法如下所示:

1、使用用于 SQL Server 的 OLE DB 提供者:

使用 SQL Server 身份验证:

oConn.Open “Provider=sqloledb;” & _ “Data Source=myServerName;” & _ “Initial Catalog=myDatabaseName;” & _ “User Id=myUsername;” & _ “Password=myPassword”

使用 Windows 身份验证(信任连接): oConn.Open “Provider=sqloledb;” & _ “Data Source=myServerName;” & _ “Initial Catalog=myDatabaseName;” & _ “Integrated Security=SSPI”

2、使用用于 ODBC 的 OLE DB 提供者(不使用 ODBC 数据源):

使用 SQL Server 身份验证:

oConn.Open “Driver={SQL Server};” & _ “Server=MyServerName;” & _ “Database=myDatabaseName;” & _ “Uid=myUsername;” & _ “Pwd=myPassword”

使用 Windows 身份验证(信任连接): oConn.Open “Driver={SQL Server};” & _ “Server=MyServerName;” & _ “Database=myDatabaseName;” & _ “Trusted_Connection=yes”

3、使用用于 ODBC 的 OLE DB 提供者(使用 ODBC 数据源): oConn.Open “DSN=mySystemDSN;” & _ “Uid=myUsername;” & _ “Pwd=myPassword”

如果遇到连接失败的情况,我们只要按照一中所示的方法,结合程序中的连接字符串进行检查,基本都能得到解决。另外,还有以下几个要注意的地方:

1、配置 ODBC 数据源时,点击“客户端”配置选项可以让我们指定连接使用的网络库、端口号等属性,如下图所示:

2、如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:

<% Set Conn = Server.CreateObject(“ADODB.Connection”)

DSNtest=“DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase” Conn.Properties(“Connect Timeout”)= 15 '以秒为单位

Conn.open DSNtest

%>

3、如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:

Dim cn As New ADODB.Connection Dim rs As ADODB.Recordset

...cmd1 = txtQuery.Text Set rs = New ADODB.Recordset rs.Properties(“Command Time Out”)= 300 '同样以秒为单位,如果设置为 0 表示无限制

rs.Open cmd1, cn rs.MoveFirst

...三、小结

本文针对大部分用户在使用 SQL Server 过程中常见的连接失败的错误,重点讨论了在使用 SQL Server 客户端工具以及用户开发的应用程序两种情况下,如何诊断并解决连接失败的错误。看过本文以后,相信每一个读者都会对 SQL Server 的连接工作原理、身份验证方式以及应用程序开发等有一个较为全面而深入的连接。本文中所有的测试或者示例均在 Windows 202_ Advanced Server + SQL Server 202_ 企业版上通过。

第三篇:SqlServer教学大纲

《SQL Server2005案例教程》教学大纲

一、教学目的:

1.通过本门课程的学习,使学员掌握数据库的概念,安装以及数据库在程序设计中的重要地位和作用 2.理解关系型数据库和表,约束,索引的创建

3.了解SQL语言基础与使用SQL语言实现数据的查询与更新 4.熟悉sqlserver的应用环境及掌握常用的管理方法 5.掌握视图,存储过程,触发器等数据库对象的创建与使用 6.掌握数据库的安全管理 7.掌握数据的备份与恢复 8.掌握数据的导入导出步骤

9.理解SqlServer下事务的概念,并能在实际应用中合理的使用事务控制命令

二、教学重点:

1.数据库基本概念

2.数据库表,约束,索引的创建 3.使用SQL语言实现数据的查询与更新 4.Select,update,delete,insert 5.index 6.constraint 7.view视图

三、教学难点:

1.SqlServer体系结构

2.SqlServer下事务的概念,并能在实际应用中合理的使用事务控制 3.存储过程 4.触发器

四、教学内容及学时分配

第1章、数据库概述 6课时

第2章、SQL Server安装及管理 4课时 第3章、数据库及表的设计 4课时 第4章、T-ransact SQL语言基础 6课时 第5章、T-ransact SQL数据查询与更新 14课时 第6章、视图 6课时 第7章、存储过程 复习

5课时

4课时

第8章、触发器

6课时 第9章、SQL安全 3第10章、数据备份与恢复 第11章、数据转换

复习4

课时 4课时 2课时

课时 68课时

第四篇:SqlServer教学大纲

《数据库与SQL Server》课程教学大纲

总学时:48 学分:2.5 适用对象:软件工程专业和信息工程与信息管理专业。先修课程:程序设计导论等。

考核要求:本课程采用期末考核与平时成绩相结合的方式对学生学习情况予以评定,平时成绩占40%,期末考核成绩占60%。平时成绩包括作业、实验报告与考勤,期末考核方式为课程设计。

一、课程的性质与任务

数据库技术是各种信息系统、管理系统的基础。Microsoft SQL Server 202_是一种使用比较广泛、功能强大、可靠性较高的数据库管理系统,为用户提供了完整的数据库解决方案。开设本课程可以令学生掌握数据库的有关概念,熟悉一种大型数据库管理系统的使用。

本课程是一门理论和应用相结合的课程,要求学生在完成本课程的学习后,能在SQL SERVER 202_数据库管理系统中利用所学习的数据库知识对数据库进行设计、操作。

二、教学目的与基本要求

熟练掌握:关系数据库中的概念,数据库设计,数据库的结构与特点,数据库系统的组成及各部分的功能,熟练使用结构化查询语言(SQL)。数据库管理,各种数据库对象管理,索引技术,数据操纵技术。

掌握:系统的安装,服务器的配置技术,安全性技术,数据复制技术,数据的互操作技术,数据完整性控制,Transact-SQL语言。

了解:关系、关系模型、键码、视图、存储过程、触发器等概念,SQL Server的并发性。

理论教学部分

理论课学时:42 使用教材及主要参考书:

教材:李春葆,《数据库原理与应用——基于SQL Server 202_》,清华大学出版社。主要参考书:Microsoft SQL SERVER 202_联机文档。

一、学时分配

章节 1 2 3 4 5 6 7 课程内容 数据库系统概述 数据模型 关系数据库

关系数据库规范化理论 数据库设计

SQL Server 202_系统概述 创建和使用数据库

学时 1 2 2 4 4 2 3 8 9 10 11 12 13 14 15 16 17 18 创建和使用表 Transact-SQL SQL高级应用 索引 视图

数据库完整性 存储过程 触发器

SQL Server的安全管理 数据备份与还原 数据转换 4 2 1.5 1.5 3 3 3 1 1 1

二、教学中应注意的问题

利用多媒体辅助授课,注意培养学生设计、管理、使用数据库的能力。

三、教学内容

第一章 数据库系统概述

基本内容:

信息、数据和数据处理,数据管理技术的发展,数据库系统的组成与结构,数据库管理系统。

教学基本要求:

熟练掌握:信息与数据,数据处理,数据库系统的组成,数据库系统体系结构,DBMS的主要功能,DBMS的组成。教学重点难点:

数据处理,数据库系统的组成,数据库系统体系结构,DBMS的主要功能,DBMS的组成。

第二章 数据模型

基本内容:

数据模型,概念模型,数据库类型。教学基本要求:

熟练掌握:数据的描述,实体间的联系方式,实体联系表示法(E-R方法),关系模型。教学重点难点:

关系模型。

第三章 关系数据库

基本内容:

关系模型的基本概念,关系的数学定义,关系代数。教学基本要求:

熟练掌握:关系模型的基本概念,关系的数学定义,关系代数。教学重点难点:

关系模型的基本概念,关系的数学定义,关系代数。

第四章 关系数据库规范化理论

基本内容:

函数依赖,范式和规范化,关系模式的分解。教学基本要求:

熟练掌握:函数依赖与属性关系,Armstrong公理,范式的判定条件与规范化,无损分解的定义和性质,无损分解的测试方法,保持函数依赖的分解。教学重点难点:

范式的判定条件与规范化,无损分解的定义和性质,无损分解的测试方法,保持函数依赖的分解。

第五章 数据库设计

基本内容:

数据库设计概述,需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库的实施和维护。教学基本要求:

熟练掌握:需求分析,概念结构设计,逻辑结构设计,物理结构设计。教学重点难点:

局部应用E-R模型设计,总体概念E-R模型设计。

第六章 SQL Server 202_系统概述

1. 基本内容:

SQL Server 202_系统简介,系统需求,SQL Server 202_的安装,客户/服务器体系结构,SQL Server服务器的管理,SQL Server 202_的主要组件。2. 教学基本要求:

熟练掌握:系统需求,SQL Server 202_的安装,客户/服务器体系结构,SQL Server 202_的主要组件。3. 教学重点难点:

系统需求,SQL Server 202_的安装,客户/服务器体系结构,SQL Server 202_的主要组件。

第七章 创建和使用数据库

1. 基本内容:

查看数据库,SQL Server数据库和文件,创建数据库,数据库更名,删除数据库。2. 教学基本要求:

熟练掌握:查看数据库,SQL Server数据库和文件,创建数据库,数据库更名,删除数据库。

3. 教学重点难点:

查看数据库,SQL Server数据库和文件,创建数据库,数据库更名,删除数据库。

第八章 创建和使用表

1. 基本内容:

建立表,修改表的结构,建立表间的关联,删除表,记录的新增和修改。2. 教学基本要求:

熟练掌握:建立表,修改表的结构,建立表间的关联,删除表,记录的新增和修改。3. 教学重点难点:

建立表,修改表的结构,建立表间的关联,记录的新增和修改。

第九章 Transact-SQL 1. 基本内容:

SQL语言,Transact-SQL基础,Transact-SQL程序设计基础。2. 教学基本要求:

熟练掌握:数据库的操作语句,表的操作语句,数据查询,标识符,数据类型,运算符,变量,批处理,注释,控制流语句,函数。3. 教学重点难点:

数据库的操作语句,表的操作语句,数据查询,标识符,数据类型,运算符,变量,批处理,注释,控制流语句,函数。

第十章 SQL高级应用

1. 基本内容:

SELECT高级查询,管理ntext、text和image数据,事务处理,数据的锁定,使用游标。2. 教学基本要求:

熟练掌握:SELECT高级查询,管理ntext、text和image数据,事务处理,数据的锁定,使用游标。3. 教学重点难点:

SELECT高级查询,使用游标。

第十一章 索引

1. 基本内容:

索引简介,索引类型,创建索引,查看和删除索引。2. 教学基本要求:

掌握:索引类型。

熟练掌握:创建索引,查看和删除索引。3. 教学重点难点:

创建索引,查看和删除索引。

第十二章 视图

1. 基本内容:

视图概述,创建视图,使用视图,视图的修改,视图信息的查询,视图的删除。2. 教学基本要求:

熟练掌握:创建视图,视图的修改,视图的删除。3. 教学重点难点:

创建视图,视图的修改,视图的删除。

第十三章 数据库完整性

1. 基本内容:

约束,默认值,规则。2. 教学基本要求:

熟练掌握:约束,默认值,规则。3. 教学重点难点:

约束,默认值,规则。

第十四章 存储过程

1. 基本内容:

概述,创建存储过程,执行存储过程,存储过程的参数,存储过程的查看、修改和删除。2. 教学基本要求:

熟练掌握:创建存储过程,执行存储过程,存储过程的参数,存储过程的查看、修改和删除。

3. 教学重点难点:

创建存储过程,执行存储过程,存储过程的参数。

第十五章 触发器

1. 基本内容:

概述,创建触发器,inserted表和deleted表,使用触发器,修改触发器,删除触发器,嵌套触发器。2. 教学基本要求:

熟练掌握:创建触发器,inserted表和deleted表,使用触发器,修改触发器,删除触发器,嵌套触发器。3. 教学重点难点:

创建触发器,inserted表和deleted表,嵌套触发器。

第十六章 SQL Server的安全管理

1. 基本内容:

SQL Server安全体系结构,SQL Server的验证模式,账号和角色。2. 教学基本要求:

熟练掌握:SQL Server安全体系结构,SQL Server的验证模式,账号和角色。3. 教学重点难点:

服务器的登录账号,数据库的用户,数据库角色,用户和角色的权限问题。

第十七章 数据备份与还原

1. 基本内容:

备份和还原构架,备份数据库,数据库还原。2. 教学基本要求: 熟练掌握:备份数据库,数据库还原。3. 教学重点难点:

备份数据库,数据库还原。

第十八章 数据转换

1. 基本内容:

DTS的基本概念,数据的导入,数据的导出。2. 教学基本要求:

熟练掌握:DTS的基本概念,数据的导入,数据的导出。3. 教学重点难点:

数据的导入,数据的导出

实验教学部分

实验学时:6 实验指导书:李春葆,《数据库原理与应用——基于SQL Server 202_》,清华大学出版社。

一、课程的性质与任务

数据库技术是各种信息系统、管理系统的基础。Microsoft SQL Server 202_是一种使用比较广泛、功能强大、可靠性较高的数据库管理系统,为用户提供了完整的数据库解决方案。开设本课程可以令学生掌握数据库的有关概念,熟悉一种大型数据库管理系统的使用。

本课程是一门理论和应用相结合的课程,要求学生在完成本课程的学习后,能在SQL SERVER 202_数据库管理系统中利用所学习的数据库知识对数据库进行设计、操作。

二、实验目的与基本要求

本实验课程配合理论教学,通过实验从实践中进一步学习,掌握和运用学过的数据库的基本理论;熟练使用Transact-SQL语言处理各类典型数据库应用问题,解决实验过程中的出现的错误和问题,培养、训练学生的分析和解决问题的能力。

学生必须完成的基本要求:准备实验,拟定实验方案;组织实验;写出需求分析报告,画出流程图;调试程序;写出实验报告。

三、实验考核方式及办法

考核方式:考查;

实验成绩评分办法:程序调试占40%,预习报告占10%,实验报告占30%,平时成绩占20%。

四、实验项目一览表

SQL Server 程序设计实验项目一览表

序号 1 实验项目名称

实验类型

实验要求 必做

适用专业 信息

学时 3 注册、配置服务器、管理数据库、管理表 设计 2 Transact-SQL 设计 必做 信息 3

五、实验项目的具体内容

实验一 注册、配置服务器、管理数据库、管理表

1、本次实验的目的和要求

熟练使用企业管理器、查询分析器与MS SQL SERVER 202_实例连接,进行服务器的注册和配置。创建、修改、查看、删除数据库。创建、修改、删除数据表。熟练使用索引、视图对数据进行管理和查看。掌握SQL SERVER中有关数据库安全的操作。掌握SQL SERVER中如何进行数据互操作、数据复制等操作。

2、实验内容或原理

使用企业管理器进行MS SQL SERVER 202_服务器的注册,并在企业管理器中对已注册的SQL SERVER实例进行配置。

使用查询分析器与指定MS SQL SERVER 202_服务器连接,并通过查询窗口使用SQL语句查看、修改服务器的配置。

分别使用查询分析器和企业管理器实现创建、修改、查看、删除数据库。在用户数据库中创建、修改、删除数据表。注意表中约束条件的使用。根据要求进行索引、视图的定义、使用、查看、修改、删除等操作。

分别通过企业管理器和查询分析器在SQL SERVER实例中对登录账号、数据库安全账号、角色进行创创建、修改、删除和权限的管理。

通过SQL SERVER的数据转换服务在SQL SERVER和其它格式数据文件之间进行数据的转换和复制。

实验二 Transact-SQL

1、本次实验的目的和要求

通过查询分析器在实验二中创建的用户数据表中使用数据操纵语言进行基本数据操作,并使用Transact-SQL进行简单SQL程序设计。掌握数据的高级查询技巧,学习如何处理大数据,练习游标的使用。掌握SQL SERVER中控制完整性的方法,学习存储过程的使用。

2、实验内容或原理

在数据表中添加记录、更新记录、删除记录,按照要求进行数据的简单查询,并使用Transact-SQL进行简单SQL程序设计。通过查询分析器对数据进行高级查询,处理大数据,练习游标的使用。

通过查询分析器练习通过约束、默认值、规则等手段进行数据的完整性控制,练习存储过程的使用,利用存储过程实现复杂操作。

通过查询分析器进行触发器的创建、使用、修改、删除等操作,并利用触发器实现复杂的完整性控制。

编写人:赵光煜

编写(修订)日期:202_.7

第五篇:SQLserver教学

1.Sql2000 安装和卸载要解决挂起的问题 2.TL_SQL带有条件、循环的语言 3.数据库是如何存储数据的

字段 记录 表 约束(主键 外键 唯一键 非空 check default)4.数据库是如何操作数据

Insert update delete T-SQL 存储过程 函数 触发器 5.数据库是如何显示数据的

6.主键:唯一标识事物;外键:来连接另外相关联的表(来自);对多一(外键存放“多”表)其值不能随便设置;一条记录—元组,列叫字段,属性; 外键表(外键存在的表),主键表(被视为是主键的表)建立外键dept_id int constraint fk_dept_id_hehe foreign key references

dept(dept_id)id int constraint pk_emp_lion primary key,主键

7.主键约束:不允许重复元素,避免了数据的冗余 外键约束:通过外键约束从语法上本事物关联的其他事物一定是存在的(事物与事物之间的关系)

Check约束:sex char(2)check(sex in('男','女'))保证事物在某个取值范围内 Default约束:设定为默认的值

Unique约束:不能插入重复的值,能为空,主键不能为空;unique和not null 可以组合使用;不允许多列为空;orcal中运行多列为空

8.主键的选择:最好用没有业务逻辑的唯一的主键,方便检索; 9.关系:

一对一的关系:可以把表A的主键充当表B的外键,也可反之; 一对多的关系:表A

(一)的主键成为表B(多)的外键;

多对多的关系:班级——老师——学生,单独一张表去实现关系,第三张表的主键设置 外键与外键的组合;外键来自两张表的主键;

10.查询(最重要、难度最大)distinct 会过滤掉重复的deptno的值;distinct 两个属性列可以对他们组成的组合进行过滤;先取表—在过滤条件; Null 不参与逻辑运算,is null,null不能有值的进行运算;

解决办法:sal*12+isnull(comm,0):如果其值为空,返回‘0’,不为空 返回本值 11.Order by(以某个字段排序):不是组合排序,先按照第一个属性排序,相同的再按第二个属性排序;

12.聚合函数 count(deptno)统计返回的不为空的记录

Count(distinct 字段)返回字段不重复的记录数

13.Group by之后select 中只能出现分组后的整体信息,不能显示单独的信息;

先按A分组,如果A相同,在按B分组,如果B分组相同,再按C分组,最总统计的是最小分组的信息;

14.Having 对分组之后的信息进行过滤;

select deptno,avg(sal)from emp group by deptno having avg(sal)>=202_ where对原始的记录进行过滤,group by 是对分组之后的记录过滤; 同:都是对数据进行过滤,保留有效数据

15.连接查询:将两个表或者两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据; 内连接:select ….from a join b on 条件;select * from a,b对表A、表B 进行笛卡尔积 用where 会对a表进行过滤; On后面为连接条件;jion为连接;

select * from emp,dept where emp.deptno=dept.deptno与内链接结果相同 推荐使用jion on 对连接结果再进行where过滤 3张表进行连接:

select a.ename,a.deptno,b.dname,c.grade from emp a join dept b on a.deptno = b.deptno join salgrade c on a.sal between losal and hisal 外连接:不但返回满足条件的所有几率,而且会返回部分不满足的条件的记录; 完全连接:两个表中匹配的所有行的记录,左边匹配右边,右边匹配左边; 交叉连接:产生一个笛卡尔积 等价于select * from emp,dept 自连接:一张表和自己连接起来查询数据。例子:不准用聚合函数,求薪水最高的员工的信息;

联合的用法:表和表之间的数据以纵向的方式连接在一起; 必须满足两个条件:这select子句必须满足列的属性相同;

注意:我们之前讲的所有的连接是以横向的连接方式去连接在一起的;

16.Identity 主键自动增长,自动增长后删除,不会自动过滤删除过的记录;主键不会自动增长;主键是否连续增长不是十分重要;可以为identity主键赋值;

17.学习的步骤:为什么需要A,什么是A,怎么使用A,使用A时的注意问题,A的应用领域,A的优缺点; 18.视图

1.为什么需要视图;2.什么是视图;3.视图的格式;4.视图的优点、缺点;5.注意的问题;

1).简化查询:避免了代码的冗余,大量重复的SQL语句;从代码上看是一个select语句 从逻辑上看是一个虚拟表看待 视图的格式:

2).Create view 视图的名字

3).用视图去查询数据;4).增加了数据库的维护的成本; As Select 语句

不用添加begin 和end 创建视图的select 语句必须为所有的计算列(非原始的)指定别名;不建议对基表进行操作; 19.事务:保证避免数据处于以后总不合理的中间状态

要么成功,要么失败;

事务也是通过锁来解决很多问题的;线程同步就是通过锁来解决的;

JSP连接SQL SERVER问题总结
TOP