現在專案中遇到乙個bug需要解決.語音服務更新多條資料到mysql資料庫,但是只有自增id最大的資料更新成功了.其他資料,全部更新失敗.
語音服務採用了otl作為資料庫處理層.
1、bug描述如圖1:更新uid=12373~12377,tb_user表只有只有12377更新欄位user_gpsswitch成功。
2、為了排除語音服務的問題,按照服務的使用方法,重寫了乙份otl更新資料庫。經過測試,可以全部更新成功。
排除了語音服務使用otl庫錯誤的問題。
語音服務otl使用**如圖2、圖3。
3、測試程式更新到測試環境(bug復現的環境),發現問題復現了,問題定位到環境配置。
檢視unixodbc版本,centos6.6預設yum安裝了2.2.14。
而本機除錯環境,版本為2.3.6.
檢視unixodbc版本更新記錄,有如下描述:
18.nov.2008
2.2.13 released
- remove the mysql driver, its woefully out of date now
因此,初步判斷為版本問題。公升級unixodbc到2.3.6,再次測試問題解決。
圖 1
圖 2圖 3
截圖不完整,補充otl語句如下:
otl_update_user.open(user_list.size(),"update tb_user set user_name=:f1, user_password=:f2, user_audiostatus=:f3, user_gpsswitch=:f4, user_gpsfrequency=:f5, user_type=:f6where user_id=:f7",*m_db);
Mysql 資料庫更新錯誤
語句 update test setage 5 where name 王莽 顧名思義就是把王莽的年齡改為5,但結果很無奈 影響行數為0,怎麼回事,語法沒錯,都沒問題啊 隨便改了改了,將name 的兩個引號去掉,結果卻無意間成功了 但是使用圖形介面更改時,結果更讓人迷惑 生成的 是 update we...
OTL連線Oracle資料庫
otl 是 oracle,odbc and db2 cli template library 的縮寫,是乙個c 編譯中操控關聯式資料庫的模板庫,它目前幾乎支援所有的當前各種主流資料庫,例如oracle,ms sql server,sybase,informix,mysql,db2,interbase...
OTL資料庫儲存技術
otl 是 oracle,odbcand db2 cli template library 的縮寫,是乙個c 編譯中操控關聯式資料庫的模板庫,它目前幾乎支援當前所有的各種主流資料庫,例如oracle,ms sql server,sybase,informix,mysql,db2,interbase ...