历史版本22 :SQL Server数据连接常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

Finereport 版本
11.0

1.2 应用场景

本文介绍 SQL Server数据连接 中,常见的问题及排查步骤。

2. TCP/IP 连接失败编辑

问题描述:

连接 SQL Server 数据库时,报错「com.microsoft.sqlserver.jdbc.SQLServerException:到主机的 TCP/IP 连接失败」

2.1 检查 URL 是否正确

1)确认数据连接的URL是否正确,包括IP、端口、数据库名称。如下图所示:

2)去除数据连接的 URL 后面的 databaseName,测试是否成功。

如果成功,则问题来源于后面的实例名,否则问题是前面的 TCP/IP 连接。

3)若检测到是实例名的问题,需要检查数据库实例名是否与 URL 中的 databaseName 一致。

4)修改数据连接的信息。数据连接的「数据连接URL」后加上ssl参数。

格式为:&sslProtocol=TLS

2.2 检查数据库配置

1)检查数据库是否启动

2)检查是否允许远程连接服务器

进入数据库所在服务器查看对象资源管理器,检查是否允许远程连接

222

3)检查数据库用户状态

数据连接中使用的用户密码,需要授权允许连接到数据引擎,并且登录状态是已启用。

222

4)检查 TCP/IP 协议是否启动

222

5)检查网络配置

打开 SQL server 配置管理器,检查 SQL server 网络配置是否启用 Named Pipes 和 TCP/IP 。
222

2.3 检查网络环境

双击「TCP/IP」或右键-属性查看对应的端口号是否正确。
222

2.4 检查是否安装 sp4

这个主要是 SQL server 2000,其他版本一般没有这个问题。sqlsp4 补丁就是 Microsoft SQL Server 2000 Service Pack 4 ,大多数版本为简体中文版。

sp4 包括用于以下 SQL Server 2000 组件的程序包,可在网络上寻找资源下载。

数据库组件(下载文件:SQL2000-KB884525-SP4-x86.EXE):更新 SQL Server 2000 的 32 位数据库组件,包括数据库引擎、复制、客户端连接组件和工具。

Analysis Services 组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE):更新 SQL Server 2000 的 32 位 Analysis Services 组件。

SQL Server 2000 Desktop Engine (MSDE) 组件(下载文件:SQL2000.MSDE-KB884525-SP4-x86.EXE):对于 SQL Server 2000 的 32 位 MSDE 组件:

安装新的 MSDE 实例;

升级现有 MSDE 实例;

更新使用合并模块的应用程序。

打 sp4 后一般会出现登录连接问题,看看SQL的服务有没有运行,没运行就去我的电脑>管理>服务里面,把 MSSQLSERVER 服务登录的用户名和密码改正确;有运行,进企业管理器,改 SQL 的登录方式为混合模式,设置sa密码,重新设置一次。 sqlserver 2000 sp3由于有 bug,很多服务器打不了补丁,说sa连接失败,所以直接安装 sp4 升级补丁,升级之前建议先备份数据库。

3. SQL Server查询速度较慢编辑

问题描述:

使用 SQL Server 数据库,SQL 语句在数据库里查询异常的快,可是放到 FR 报表里面速度相对慢了。

3.1 SQL语句是否过于复杂

SQL Server 查询速度较慢,建议先检查 SQL 语句是否过于复杂、是否用了太多的链接查询,优化 SQL 语句来提高访问数据的速度。

详细点击: 优化报表取数

3.2 网络是否稳定

在访问或导出数据量较大模板时,还要检查网络速度,是否影响访问数据的快慢等。

3.3 SQLServer驱动包问题

排除以上因素,SQL Server 访问数据慢,那就是 SQL Server 驱动包的原因了。

报表环境下面默认有两个 SQL Server 驱动「sqljdbc.jar」和「jtds-1.2.2.jar」。

有的时候「sqljdbc.jar」查询速度比较慢,那么就可以尝试换下「jtds-1.2.2.jar」驱动。

使用「 jtds-1.2.2.jar」驱动连接数据库时,数据库类型选择「others」,手动输入「 URL 」和「驱动器」。

  • 驱动:net.sourceforge.jtds.jdbc.Driver

  • URL:jdbc:jtds:sqlserver://IP:端口号/databaseName

操作详情请参见: [设计器]JDBC连接数据库 

4. SQL SERVER多实例名编辑

问题描述:

一般安装SQL SERVER都是使用默认实例名,但是有时候有特殊情况不能使用默认实例名,或者多个实例的时候,就不一样了。

解决方案:

修改地址参数即可建立非默认实例名的链接。

默认的数据链接地址为:jdbc:sqlserver://localhost:1433;databaseName=数据库名

当非默认实例名时,修改为:jdbc:sqlserver://localhost\实例名:端口;databaseName=数据库名

注:非默认实例名使用的端口可能为1434,请注意防火墙之类是否有拦截或者占用

5. 数据乱码编辑

问题描述:

1)SQL Server数据集预览时,数据乱码,日期错乱。

2)报表预览时,从SQL Server数据库中取出的数据乱码。

3)通过填报向SQL Server数据库中填入的数据乱码。

5.1 排查数据库排序规则

原因分析:

SQL Server数据乱码主要受排序规则的影响,安装时系统默认的排序规则是拉丁文的排序规则。

安装时若没有考虑到这一点,安装完成后,就会造成在使用过程中出现乱码。

解决方案:

请绕过FineReport/FineBI,直接从数据库端用SQL取数,看看是否也会乱码。

若乱码,则需要修改排序规则。右键数据库,点击「属性>选项」,设置「排序规则」。如下图所示:

5.2 排查编码是否一致

原因分析:

数据库编码格式与数据连接编码格式不一致

解决方案:

1)查询SQL Server数据库编码格式

SELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage');

2)查询结果编码对照如下,请参照调整帆软数据连接的编码:
936   简体中文GBK
950   繁体中文BIG5
437   美国/加拿大英语
932   日文
949   韩文
866   俄文
65001   unicode UFT-8