命令行中執行 *.sql 的問題 (代參數)

記得在命令行中,利用一些工具程式,可以執行 *.sql 的腳本檔案。
這些工具有 OSQL、SQLCMD,使用範例如下:
osql -S. –U UserID –P 1234 –iRestore_DB03.sql
sqlcmd -S. –U UserID –P "PW" -i Restore_DB03.sql
* 在 Microsoft 相關文件中,提及 OSQL 工具將會在未來被移除,建議要改換 SQLCMD 工具。
近來,工作上的需要,要在 *.sql 的腳本中設定變量,好適用在各種環境中。
不料,卻遇到瓶頸:該如何在 批次用法 中,將參數內容加以代入?
經多方查找後,發現 解決方法:
  1. 需要 SQL 2005 工具:SQLCMD
  2. 批次用例:sqlcmd -S. –U UserID –P "PW" -i test.sql -v cols="count(*)" tablename="trpa00h"
  3. SQL 腳本用例:test.sql 檔案內容
    SET NOCOUNT ON
    Select $(cols) from $(tablename)

CRAXDRT Error Occurred on Server. 438: Object doesn't support this property or method

執行報表預覽時,產生下列錯誤,該如何排除問題?

CRAXDRT

解決方案:移除 Crystal Report 程式,再重新安裝。

Login 錯誤 - DBAlias

在登入系統時,出現下列錯誤訊息,該如何排除問題?

Login_Error

處理步驟如下:

  1. 點選 選擇帳套 右方的更新帳套 鈕,更新帳套清單
  2. 先選用其他帳項目,並登錄系統。
  3. 結束此一帳套後,再重新登錄先前出問題的帳套

即可解決問題。

NaviCat 連線到遠端主機的設定

NaviCat Lite 程式是個連接 MySQL 資料庫的好用工具。

初期架設好程式後,發現到好像只能連線到 Localhost,對於遠端主機的連線,卻是得到錯誤訊息 !!
當時,只想著是不是這是 Lite 版的關係,就不再注意此事。

image

然而,隨著作業上的需要,就不得不要用到工具連線遠端DB,這時先前的問題再次地臨到。

問題還是要解決,試試吧

image

沒想到,解決問題還真簡單!!

Index 的修改

MS SQL 中的 index 內容,若要修改,可以採用下列方式之一處理

  1. 以手動方式,進入 SQL Server Enterprise Manager 中,修改表結構中的 index 。
  2. 採用 SQL 指令來調整:(index 無法用 SQL 直接修改,而是要先刪除再創建新索引)

Drop Index table_name.index_name

Create  Unique  Clustered  Index  index_name on table_name(field1,field2)

中文顯示問題:Access、MySQL的連接整合

原本想說,應用自認還算熟悉的 Access 來當前端工具,連接後端資料庫 MySQL 的數據,就可以平順地將現今正再使用的程式及資料移轉到 MySQL 中,好方便多人共同使用,讓電腦應用能更多元化些 !!

不料,人算真不如天算,隨意在 MySQL 建置的數據資料,在經過 Access 的連接資料表動作後,被連接到的數據內容,即然發生中文字變亂碼的情形。(同樣的現象也會產生在直接用程式讀取資料的時候)

將這問題在網上一查詢,好像有很多人發生過;不夠,他們發生的環境並和我,完全不同 !!
我可是使用 Access & MySQL 整合所產生了
他們則是發生在程式運用擷取資料數據的時候,每次都是 Set Names 'UTF8' 就可解決,多看幾次都快背起來了。

好吧,回頭來面對現實了解問題發生在那兒??
我們只是連接資料表而矣,並沒有時間下個 set name 指令 !!

在多方查找問題之後,才發現到 MySQL 網站共提供有兩個 ODBC 程式:

  • MySQL ODBC 3.51 Driver
  • MySQL ODBC 5.1 Driver

解決方法:更換最新的程式 MySQL ODBC 5.1 Driver 即可

使用 MySQL ODBC 3.51 Driver:顯示中文亂碼

image

使用 MySQL ODBC 5.1 Driver:正常顯示中文字

image

同樣的情形,在程式中的用法也相同。

ConnectString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
                "SERVER=" & strServerName & _
                ";DATABASE=" & strDatabaseName & ";" & _
                "USER=" & strUserName & _
                ";PASSWORD=" & strPassword & _
                ";OPTION=3;"

ConnectString = "DRIVER={MySQL ODBC 5.1 Driver};" & _
                "SERVER=" & strServerName & _
                ";DATABASE=" & strDatabaseName & ";" & _
                "USER=" & strUserName & _
                ";PASSWORD=" & strPassword & _
                ";OPTION=3;"

Office 2003 PIA 安裝

Office 2003 PIA (Primary Interop Assemblies)
藉由使用 Microsoft.NET Framework 和通用語言執行(CLR)階段,從managed (.NET) 程式碼來呼叫 Unmanaged (COM) 程式碼,讓 Microsoft 元件物件模型 (COM) Interop 組件。受管理的應用程式在編譯時期繫結至 Unmanaged 型別允許 COM Interop 組件。然後,應用程式可以提供關於如何 Unmanaged 型別必須封送處理在執行階段至通用語言執行階段資訊。

 

安裝注意事項及步驟:
1. 要先安裝好 Excel 程式,確定可以使用 Excel
2. 安裝 Office 2003PIA
3. 規劃 Component Service

確定程式已被安裝
image

規劃 Component Service 的步驟:
1. 開啟 Component Service 功能,並點選
Console Root / Component Services / Computers / My Computer / DCOM Config / Microsoft Excel 應用程式
 image 
image

2. 屬性設定:Security / Launch and Activation Permissions
image

3. 增設用戶 NETWORK SERVICE ,並設定權限
image

4. 同理 Security / Access Permissions 也要自訂,
     增設用戶 NETWORK SERVICE ,並設定權限

 

若是安裝設定正常,就不會有下列錯誤訊息。
image