最近專案開發採用mysql作資料庫,邏輯全部封裝到儲存過程,c++ otl訪問。
1 otl對mysql的支援並不咋的,不能訪問帶out型別的儲存過程。解決方案是將out引數放在結果集中返回(後果是每條結果都包含這個變數...)。
2 otl不能返回不同的結果集,只能選擇拆分儲存過程。
3 update不能用row_count() < 1來判斷操作是否成功,可用@@error_count != 0。
4 mysql儲存過程不支援陣列引數,解決方案是將陣列格式化成字串。
查詢的時候用','隔離自然是最好的選擇:
set @sqlstr=concat( 'select * from tb_1 where f_1 in (', param_str, ');');
prepare stmt from @sqlstr;
execute stmt;
其它間隔符就麻煩點了比如『-』:
declare i int default 0;
set @sqlstr = 'select * from tb_1 where f_1 in (';
repeat set i = i + 1;
if i != 1 then
set @sqlstr=concat(@sqlstr, ',');
end if;
set @sqlstr=concat(@sqlstr, substring_index( substring_index(param_str, '-', i), '-', -1) );
until i >= count end repeat;
MYSQL命令小記
本人不才,記錄一下sql命令。使用mysql。1 顯示資料庫 show databases 要加s 2 建立資料庫 create database one 資料庫名字為one 下面都是用one來代表 可通過show databases檢視 3 刪除資料庫 drop database one 4 進入...
oracle rownum使用小記
對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 gt between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽列的意義就不應該感到驚奇,同樣是...
libtiff使用小記
這兩天就跟libtiff庫卯上了,總會遇到奇怪的問題。現在問題或直接或曲折的解決了,一一記錄下來。問題一 tiffsetdirectory函式的使用。目的 交叉讀取tiff中兩頁的每一行,假設第一頁tif為tif 0,第二頁tif為tif 1。我的目的就是先讀tif 0的第i行,然後讀tif 1的第...