各位好,小弟的公司很老舊,程式很多都是VB6開發的,近日在Win10 x64上跑一支古老程式時出了點狀,想請教版上的高手有無辦法在不改程式、資料庫的前提下解決這個問題。
關於程式碼的部分,我無權改寫,但有拿到原始碼。
資料庫的部分我也無權做任何變動。
先簡述一下軟硬體環境
伺服器端
Windows Server 2008R2 + SQL Server 2008 (版本 10.50.6560.0)
測試PC
Win10 x64
Win7 x86
這支古老的程式在Win7 x86上運作都正常,但在Win10環境下就會出問題
程式碼片段如下
strSQL = "Select * from DBTEST.dbo.MyTable1 where 1=2"
Set errRS = grdoCnt.OpenResultSet(strSQL, rdOpenKeyset, rdConcurRowVer, rdExecDirect)
errRS.AddNew
errRS!col1 = "value1"
errRS!col2 = "<?xml>"
errRS.Updae
其中 MyTable1 的欄位定義如下
col1 > varchar(20)
col2 > xml
症狀
col2只指定空字串的話,則.Update方法運作正常
col2有指定任何一個字元的話,則.Update方法就會跳錯誤,錯誤訊息:
「S1000:[Microsoft][ODBC SQL Server Driver]警告:部分插入/更新。文字或影像欄的插入/更新失敗。」
我覺得問題應該是出在Win10內建的SQL Server ODBC Driver,但是我去找了其他ODBC Driver來裝,重設ODBC DSN也無效
試試
程式EXE或捷徑上按滑鼠右鍵 → 內容 → 相容性 → 變更所有使用者設定