反饋已提交

網絡繁忙

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,埠以及資料庫是正確的),如下圖所示:

2024-07-02_10-32-13.png

2)去除後面的 databaseName,測試是否成功,如果成功,則問題來源於後面的實體名,否則問題是前面的 TCP/IP 連結。

2024-07-02_10-33-23.png

3)若檢查到是實體名的問題,需要檢查資料庫實體名是否與 URL 中的 databaseName 一致。

2024-07-02_17-20-03.png

4)修改資料連結的資訊。資料連結的「資料連結URL」後加上ssl參數。

格式為:&sslProtocol=TLS

2.2 檢查資料庫配置

1)檢查資料庫是否啟動

2)檢查是否允許遠端連結伺服器

進入資料庫所在伺服器查看物件資源管理器,檢查是否允許遠端連結

2024-07-02_17-21-49.png

3)檢查資料庫使用者狀態

資料連結中使用的使用者密碼,需要授權允許連結到資料引擎,並且登入狀態是已啟動。


2024-07-02_17-25-09.png

4)檢查 TCP/IP 協定是否啟動

5)檢查網路配置

開啟 SQL server 配置管理器,檢查 SQL server 網路配置是否啟動 Named Pipes 和 TCP/IP 。

1719912551883032.png

2.3 檢查網路環境

雙擊 TCP/IP右鍵-屬性查看對應的埠號是否正確。
2024-07-02_17-29-55.png

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」驅動。

1719912994136129.png

使用「 jtds-1.2.2.jar」驅動連結資料庫時,資料庫類型選擇「others」,手動輸入「 URL 」和「驅動器」。

  • 驅動:net.sourceforge.jtds.jdbc.Driver

  • URL:jdbc:jtds:sqlserver://IP:埠號/databaseName

操作詳情請參見: 資料連結JDBC

1719890203583543.png

4. SQL SERVER多實體名

問題描述:

一般安裝SQL SERVER都是使用預設實體名,但是有時候有特殊情況不能使用預設實體名,或者多個實體的時候,就不一樣了。

解決方案:修改地址參數即可建立非預設實體名的連結。

預設資料連結地址為:jdbc:sqlserver://localhost:1433;databaseName=資料庫名

當非預設實體名時,修改為:jdbc:sqlserver://localhost\實體名:埠;databaseName=資料庫名

注:非預設實體名使用的埠可能為1434,請注意防火牆之類是否有攔截或者佔用

2024-07-02_11-25-57.png

5. 資料亂碼

問題描述:

1)SQL Server資料集預覽時,資料亂碼,日期錯亂。

2)報表預覽時,從SQL Server資料庫中取出的資料亂碼。

3)透過填報向SQL Server資料庫中填入的資料亂碼。

5.1 排查資料庫排序規則

原因分析:

SQL Server資料亂碼主要受排序規則的影響,安裝時系統預設排序規則是拉丁文的排序規則。

安裝時若沒有考慮到這一點,安裝完成後,就會造成在使用程式中出現亂碼。

解決方案:

請繞過FineReport/FineBI,直接從資料庫端用SQL取數,看看是否也會亂碼。

若亂碼,則需要修改排序規則。右鍵資料庫,點選「屬性>選項」,設定「排序規則」。如下圖所示:

2024-07-02_17-40-00.png

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


附件列表


主題: 資料準備
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙