添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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查询速度较慢

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