iT邦幫忙

0

Win10底下,VB6 RDO 連接MSSQL 新增資料列出狀況

各位好,小弟的公司很老舊,程式很多都是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也無效

看更多先前的討論...收起先前的討論...
這個看起來是資料庫欄位問題~你有確定新機的資料庫欄位正常?你可以在資料庫下SQL語法試試~
77012904 iT邦新手 3 級 ‧ 2021-05-04 20:16:02 檢舉
詳細的RDO怎麼運作我就不太清楚,但是
直接用SSMS管理工具去下和程式中同等效果的指令,是正常的。
Insert into MyTable1 (col1, col2) values ('value1', '<?xml>')

且在同樣的伺服器環境下,這段代碼在Win7運作正常
看起來~只能從程式碼修正win10問題了~但你又提到不可以更動程式碼~
這大概無解...
或者說~新機win10安裝虛擬機,去執行win7環境去執行如何?
77012904 iT邦新手 3 級 ‧ 2021-05-05 16:29:28 檢舉
會堅持win10就是因為用停止支援的系統會被盯. 當然最終的下下策還是只能這樣了
那你回報主管~舊程式軟體~只能用在停止支援的系統~
沒有其他方法~
不然就是重新開發軟體~來解決新系統環境^^"
不明
【**此則訊息已被站方移除**】
0
japhenchen
iT邦大師 1 級 ‧ 2021-05-05 14:38:59

試試

程式EXE或捷徑上按滑鼠右鍵 → 內容 → 相容性 → 變更所有使用者設定 https://ithelp.ithome.com.tw/upload/images/20210505/201179544D7pUhSHHM.jpg

0
msnman
iT邦研究生 1 級 ‧ 2021-05-05 15:06:41

vb6.0在SQL2008以後的版本有支援上的問題,所以才會出現新增error的錯誤。

我要發表回答

立即登入回答