精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PostgreSQL的.NET驅動程序Npgsql中參數對象的一個Bug

數據庫 其他數據庫 PostgreSQL
最近將公司的項目從SqlServer移植到PostgreSQL數據庫上來,在調用數據庫的存儲過程(自定義函數)的時候,發現一個奇怪的問題,老是報函數無法找到。

最近將公司的項目從SqlServer移植到PostgreSQL數據庫上來,在調用數據庫的存儲過程(自定義函數)的時候,發現一個奇怪的問題,老是報函數無法找到。

先看一個PgSQL存儲過程:

  1. CREATE OR REPLACE FUNCTION updateattention(dm citext)  
  2. RETURNS void AS 
  3. $BODY$  
  4. DECLARE 
  5. BEGIN 
  6. update ZB set gzd=COALESCE(gzd,0)+1 where ZB.dm=$1 ;  
  7. END;  
  8. $BODY$  
  9. LANGUAGE plpgsql VOLATILE  
  10. COST 100;  
  11. ALTER FUNCTION updateattention(citext) OWNER TO postgres; 

在PostgreSQL中,函數和存儲過程沒有區別,這里我們把沒有返回值的函數叫做存儲過程吧,也許表訴的不太準確,還望大蝦指正。

上面定義一個存儲過程updateattention,它有一個自定義類型 citext,用于將字符串中類型換成不區分大小寫的類型,它的定義如下:

  1. CREATE OR REPLACE FUNCTION citext(character)  
  2. RETURNS citext AS 
  3. 'rtrim1' 
  4. LANGUAGE internal IMMUTABLE STRICT  
  5. COST 1;  
  6. ALTER FUNCTION citext(character) OWNER TO postgres; 

下面是調用updateattention存儲過程的代碼:

  1. //獲取PostgreSQL的數據訪問對象  
  2. PWMIS.DataProvider.Data.AdoHelper db = MyDB.GetDBHelperByConnectionName("PostgreSQL");  
  3. //獲取PostgreSQL的參數對象  
  4. IDataParameter para = db.GetParameter();  
  5. para.ParameterName = "@dm";  
  6. para.DbType = DbType.AnsiString;  
  7. para.Value = "KF0355";  
  8. db.ExecuteNonQuery("updateattention",  
  9. System.Data.CommandType.StoredProcedure,  
  10. new System.Data.IDataParameter[] { para }); 

程序使用PDF.NET(PWMIS數據開發框架)的數據訪問對象AdoHelper來進行相關的數據訪問操作,它采用反射工廠模式,根據系統的配置實例化具體的數據訪問類,這里使用的是PostgreSQL數據訪問類。

運行該程序,出現下面的錯誤:

PDF.NET AdoHelper 查詢錯誤:

  1. DataBase ErrorMessage:ERROR: 42883: function updatefundattention(text) does not exist  
  2. SQL:updatefundattention  
  3. CommandType:StoredProcedure  
  4. Parameters:  
  5. Parameter["@jjdm"] = "KF0355" //DbType=String 

PDF.NET框架內置了日志對象和異常對象,它能夠為你拋出詳細的錯誤信息。

如果采用下面的方式調用,又沒有問題:

  1. db.ExecuteNonQuery("select * from updateattention(@dm)",  
  2. System.Data.CommandType.Text,  
  3. new System.Data.IDataParameter[] { para }); 

------------------------------------------------------------------------------------

盡管該方式可以作為一種替代方案,但要用select * from 這種方式調用存儲過程,總覺得很別扭,還得找到問題的真正原因。

這個 "function ... does not exist" 的問題很難搜索,最終在國外找到一篇文章討論類似的問題:

http://pgfoundry.org/forum/forum.php?thread_id=637&forum_id=519

文中有人說,可能是參數的類型轉換問題,但我這里只是將參數進行了大小寫轉換,應該不會有類似Int32到Int64這類問題。

無賴,只有將調用存儲過程的.NET程序代碼一個一個排查,當注釋掉

para.DbType = DbType.AnsiString;

的時候,程序居然能夠正常運行通過了!

之前也曾經懷疑過是不是DbType的問題,但是當把鼠標放到VS2010的編輯器中para 對象下面的時候,智能提示顯示 DbType="{String}".

默認情況下,參數對象的DbType屬性值是

DbType.String

難道

DbType.AnsiString==DbType.String ??

看了一下定義,它們是有區別的,DbType.AnsiString表示非Unicode的變長字符串,DbType.String 表示Unicode的變長字符串。

一般情況下,ANSI編碼表示當前系統編碼,所以我猜想AnsiString在我的機器上是Gb2312編碼的,查了一下數據庫的編碼,它是UTF-8格式的,難怪難怪,PostgreSQL給我提示找不到 updatefundattention(text) 函數,注意下,實際上這個函數的參數不是text類型的,它實際上應該是 character 類型,PostgreSQL可以定義同名的函數,但函數可以有不同的參數類型,有點像C#的方法重載。

到此,問題似乎解決了,但還沒完:

VS2010的智能提示有Bug?

***次有這個念頭我都覺得不可思議,因為以前在VS2008的時候曾經調試過類似的代碼,趕緊將上面的.net代碼中的參數對象換成其它數據庫類型的參數對象試試看:

  1. //獲取PostgreSQL的數據訪問對象  
  2. PWMIS.DataProvider.Data.AdoHelper db = MyDB.GetDBHelperByConnectionName("PostgreSQL");  
  3. //使用 SqlServer 的參數對象  
  4. IDataParameter para = new SqlParameter();  
  5. para.ParameterName = "@dm";  
  6. para.DbType = DbType.AnsiString;  
  7. para.Value = "KF0355";  
  8. db.ExecuteNonQuery("updateattention",  
  9. System.Data.CommandType.StoredProcedure,  
  10. new System.Data.IDataParameter[] { para }); 

再此將光標放到para.DbType 上,這次提示正確了,是“{AnsiString}”;

將上面的代碼放到VS2008中再次驗證,智能提示正確,看來不是VS2010的Bug,呵呵。

故此,得到的結論:

PostgreSQL的.NET數據訪問驅動程序的參數對象DbType屬性存在一個設置成AnsiString之后查看該屬性的結果卻是String的Bug!

PS:雖然查看屬性的確有這樣一個Bug,但好像程序內部做了正確的處理,要不我的程序最終是無法運行通過的。

后記

PostgreSQL的.NET數據驅動程序的這個問題引起的問題使得我困擾了2天左右的時間,不得不發帖說明一下這個過程,現在國內有關PostgreSQL的資料太少,寫點東西供大家參考一下。

原文鏈接:http://www.cnblogs.com/bluedoctor/archive/2011/05/18/2050276.html

【編者推薦】

  1. 思科推新數據中心解決方案支持SQL Server
  2. 數據庫日常維護常用的腳本部分收錄
  3. SQL Server表最小行的一個糾結問題
  4. 云端數據庫:微軟SQL Azure及其應用場景
  5. SQL點滴之收集SQL Server線程等待信息

 

 

責任編輯:艾婧 來源: 博客園
相關推薦

2011-05-31 10:38:14

PostgreSQL

2011-05-20 08:54:35

PostgreSQL

2017-10-24 17:03:48

Linux驅動程序編譯

2009-09-14 17:08:02

WebFormView

2015-08-24 10:07:13

程序員bug

2010-05-10 15:53:24

Unix系統

2018-08-29 13:33:02

Windows 10修復驅動程序

2011-01-06 16:29:08

linuxtasklet機制

2009-07-06 18:17:46

JDBC驅動程序

2013-10-31 16:29:10

Linux內核

2009-06-15 14:18:00

netbeans配置JDBC驅動程序

2022-03-08 09:25:52

數據庫系統MongoDB

2022-05-19 08:33:53

漏洞惡意軟件

2021-11-29 07:55:45

Linux GPIO Linux 系統

2021-05-06 13:45:54

漏洞網絡安全網絡攻擊

2025-02-13 07:00:00

Dubbo-goJava服務端

2009-11-04 13:14:59

Windows Emb驅動程序

2009-07-20 18:01:38

Oracle JDBC

2018-11-19 10:15:26

Windows 10WiFi驅動程序

2019-03-27 13:20:31

Windows 10更新驅動程序
點贊
收藏

51CTO技術棧公眾號

91九色蝌蚪嫩草| 欧美精品午夜视频| 亚洲免费一级视频| 大地资源中文在线观看免费版| 首页亚洲欧美制服丝腿| 在线视频欧美日韩精品| www.桃色.com| 在线观看网站免费入口在线观看国内| 国产区在线观看成人精品| 91精品国产综合久久香蕉最新版 | 天堂av在线资源| 日韩精品国产精品| 欧美日韩aaaa| 欧美一区二区三区粗大| 99re热精品视频| 欧美三级欧美一级| 99视频在线免费播放| 欧美私人网站| 久久久国产综合精品女国产盗摄| 91在线观看欧美日韩| 无码人妻丰满熟妇精品区| 中国精品18videos性欧美| 亚洲女同性videos| 在线播放av网址| 亚洲国产综合在线观看| 欧美性猛交xxxx富婆弯腰| 国产精品av免费观看| www.在线播放| 国产午夜亚洲精品不卡| 国产91精品入口17c| 国产一区二区三区三州| 日韩电影在线观看一区| 91成人福利在线| 欧美精品videos极品| 91欧美在线| 在线电影欧美日韩一区二区私密| 中文字幕一区二区久久人妻网站| 午夜日韩影院| 日韩一级大片在线观看| av免费一区二区| 中文.日本.精品| 欧美性猛交xxxx偷拍洗澡| 黄页网站大全在线观看| 国产探花在线观看| 玉足女爽爽91| 亚洲美女自拍偷拍| 里番在线观看网站| 中文字幕一区二区三区不卡在线 | 成人免费网站在线观看| 国产偷人爽久久久久久老妇app| 999在线观看精品免费不卡网站| 欧美理论片在线观看| 欧美日韩黄色网| 国产精品videosex性欧美| 伊人av综合网| 亚洲色图欧美色| 日韩毛片视频| 久久久精品999| 中文字幕在线观看2018| 女主播福利一区| 欧美日韩高清区| 国产午夜视频在线| 亚洲激情视频| 国产成人avxxxxx在线看| 凹凸精品一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 国产精品高潮呻吟久久av无限| 国产精品久久久久久久久夜色| 日韩成人一级片| 国产日韩欧美电影在线观看| 99久久久国产精品无码网爆| 国产综合久久久久久久久久久久 | 精品久久久无码中文字幕| 国产精品自在在线| 国产青春久久久国产毛片| 天天色天天操天天射| 久久久久久久久久久电影| 中文字幕日韩精品久久| 美女网站视频在线| 日韩欧美在线播放| 亚洲综合欧美激情| 日韩免费高清视频网站| 亚洲国产欧美在线成人app | 538国产精品一区二区在线| 五月天婷婷导航| 久久成人免费电影| 国产伦精品一区二区三区视频免费 | 99久久精品一区二区成人| 91精品国产综合久久久蜜臀图片| 性xxxxxxxxx| 久操国产精品| 久久亚洲国产精品成人av秋霞| 国产第一页在线播放| 天堂影院一区二区| 亚洲综合国产精品| 美女毛片在线看| 国产精品第四页| 黄色av网址在线播放| 国产原创一区| 日韩精品极品在线观看播放免费视频| 91麻豆制片厂| 日韩午夜激情| 91热福利电影| 精品成人一区二区三区免费视频| 亚洲日本韩国一区| 久久国产成人精品国产成人亚洲 | 欧美日韩免费一区二区三区视频| 91精产国品一二三| 日本道不卡免费一区| 久久久这里只有精品视频| 在线观看亚洲国产| 91一区二区在线| 国产午夜精品视频一区二区三区| 久久人体大尺度| 精品国产一区二区在线观看| 黑人狂躁日本娇小| 日韩和的一区二区| 久久久精品动漫| 男女视频在线| 91精品国产综合久久精品app| 四虎影成人精品a片| 黑丝一区二区三区| 92裸体在线视频网站| 黄色在线小视频| 欧美日韩国产在线播放| 中文在线字幕观看| 综合国产在线| 91免费电影网站| av在线免费一区| 91激情五月电影| 亚洲最大成人网站| 国产免费成人| 久久国产精品99久久久久久丝袜| 成人影院在线播放| 精品国产一区二区三区av性色 | 精品国产精品自拍| 日本精品一二三| 女人香蕉久久**毛片精品| 成人国产精品色哟哟| 99中文字幕一区| 欧美亚洲高清一区二区三区不卡| 亚洲午夜久久久久久久久红桃| 亚洲精选久久| 国产精品一区二区免费看| 视频在线这里都是精品| 欧美一区二区三区免费大片| 韩国一级黄色录像| 久久99久久久久久久久久久| 亚洲精品人成| 亚洲欧洲二区| 欧美成在线观看| 精品国产亚洲一区二区麻豆| 亚洲在线视频网站| 在线精品视频播放| av成人毛片| 免费成人av网站| se01亚洲视频| 日韩中文字在线| 国产三级漂亮女教师| 一区二区三区在线视频观看| 日本在线不卡一区二区| 99国产精品| 日本免费高清一区二区| 成人黄色视屏网站| 中文字幕久久精品| 国产美女主播在线观看| 亚洲综合免费观看高清完整版| 黄色在线免费播放| 亚洲深夜影院| 日韩欧美在线一区二区| 精品久久在线| 欧美精品做受xxx性少妇| 蜜桃av噜噜一区二区三区麻豆 | 欧美 丝袜 自拍 制服 另类| 亚洲美女15p| 国产精品女人久久久久久| 久久久久久久久免费视频| 日韩欧美一区二区视频| 影音先锋亚洲天堂| 26uuu国产一区二区三区| 日本www.色| 欧美一区精品| 麻豆av一区二区三区久久| 国产毛片精品久久| 欧美日韩国产二区| 欧美一区二区三区少妇| 69久久99精品久久久久婷婷 | 欧美在线观看视频一区二区| 久艹视频在线观看| 国产婷婷色一区二区三区在线| 亚洲天堂av一区二区| 亚洲国产高清视频| 五月天亚洲综合| 国产精品白丝一区二区三区| 国产精品久久久久久久久| 久久精品免费一区二区| 自拍在线观看| 久久精品国产成人| 污视频软件在线观看| 欧美美女网站色| 亚洲天堂一区在线观看| **欧美大码日韩| 欧美高清性xxxx| 国产一区二区调教| 99精品视频播放| 狠狠综合久久av一区二区老牛| 欧美午夜免费| 国产精品一区二区三区美女| 国产精品丝袜久久久久久不卡| 欧美1234区| 俺去了亚洲欧美日韩| 视频二区在线| 精品国产自在久精品国产| 日本一区二区三区久久| 精品成人在线视频| 91aaa在线观看| 中文字幕第一区第二区| 国产福利短视频| 粉嫩av一区二区三区| 91av视频免费观看| 秋霞午夜av一区二区三区| 青青艹视频在线| 欧美视频二区| 97av中文字幕| 婷婷伊人综合| 亚洲一区二区三区四区中文| 一道在线中文一区二区三区| 国产精品一区二区欧美黑人喷潮水 | 免费一区二区三区视频导航| 国产欧美日韩视频一区二区三区| 成人综合日日夜夜| 国产精品久久一区主播| 国产 日韩 欧美一区| 91成人在线观看国产| www.九色在线| 97国产suv精品一区二区62| 在线观看wwwxxxx| 久久亚洲欧美日韩精品专区 | 久久全国免费视频| av在线播放观看| 欧美成人性色生活仑片| 超碰在线观看免费| 欧美精品日韩三级| 亚洲wwwww| 欧美区在线播放| 中文字幕伦理免费在线视频| 欧美精品在线视频观看| 神马午夜伦理不卡| 欧美激情一区二区三区在线视频观看 | 久久久99久久精品欧美| 蜜桃传媒一区二区亚洲av| 91免费在线看| 久久只有这里有精品| 久久久99精品免费观看| 中文字幕伦理片| 国产精品美女久久久久av爽李琼| 亚洲欧美日韩第一页| 综合久久一区二区三区| 丝袜 亚洲 另类 欧美 重口| 一区二区三区在线观看视频| 国产一级片网址| 亚洲h在线观看| 国产精品免费精品一区| 在线观看一区二区视频| 中文字幕在线播出| 91精品国产综合久久婷婷香蕉| 性一交一乱一伧老太| 亚洲国产婷婷香蕉久久久久久| 四虎永久在线观看| 国产午夜精品一区二区三区| 思思99re6国产在线播放| 久久国产精品久久久久| 成人免费高清观看| 日本欧美一二三区| 欧美爱爱视频| 国产成人一区二区三区免费看| 欧美做受69| 亚洲精品无人区| 女主播福利一区| 无码精品国产一区二区三区免费| 日本女优在线视频一区二区| www.成人黄色| 9色porny自拍视频一区二区| 一区二区三区久久久久| 最好看的中文字幕久久| 国产无套内射又大又猛又粗又爽| 色老头久久综合| 精品国精品国产自在久不卡| 亚洲女人天堂av| 羞羞视频在线观看免费| 欧美在线一级视频| av日韩久久| 久久亚洲国产精品日日av夜夜| 日韩欧美视频在线播放| 久久精品视频16| 久久成人羞羞网站| 五级黄高潮片90分钟视频| 亚洲色图制服诱惑| 六月丁香激情综合| 日韩一区二区免费电影| 蜜桃视频在线免费| 欧美丰满老妇厨房牲生活 | 91精品视频免费看| 亚洲自拍电影| 久久久99精品视频| 日韩国产成人精品| 午夜不卡久久精品无码免费| 亚洲欧洲色图综合| 亚洲欧美偷拍一区| 精品国产免费久久| 国产原创视频在线观看| 国产精品h在线观看| 都市激情亚洲| 色乱码一区二区三区熟女| 久久狠狠婷婷| 大乳护士喂奶hd| 亚洲一二三专区| 国产乱码一区二区| 国产一区二区三区久久精品| 91超碰在线免费| 成人毛片网站| 亚洲国产成人精品女人| 成人亚洲精品777777大片| 91视频www| 国产成人精品一区二三区| 精品久久久久久久久久久久久久久| 免费在线看黄网站| 国产精品久久久久久超碰| 欧美禁忌电影网| 丰满少妇被猛烈进入高清播放| 成人国产精品免费网站| 国产精品视频一区二区三| 欧美久久久久久久久久 | 欧美激情在线视频二区| 日韩午夜视频在线| 亚洲国产精品一区在线观看不卡 | 伊人影院在线观看视频| 亚洲视频在线观看一区| 亚洲一区在线观| 日韩在线观看免费网站| 国产一区二区三区四区五区3d| 神马影院我不卡| 日韩国产欧美在线视频| 亚洲日本精品视频| 欧洲精品一区二区| 成人在线高清视频| 国产精品视频区1| 999国产精品| 想看黄色一级片| 亚洲美女一区二区三区| 国产黄色美女视频| 欧美极品第一页| 久久夜色精品国产噜噜av小说| 久久久久久www| 91视频一区二区| 男人天堂av在线播放| 中文字幕日韩在线视频| 成人福利一区二区| 中文字幕一区二区三区最新| 国产综合色精品一区二区三区| 日韩视频中文字幕在线观看| 亚洲精品一线二线三线| 少妇视频在线观看| 日韩影院一区| 激情成人综合网| 精品无码人妻一区二区三区品| 精品国产露脸精彩对白| 狼人综合视频| 香蕉久久夜色| 国产在线不卡视频| 日韩美女一级片| 一本色道久久综合亚洲精品小说 | 国产黄色录像片| 日韩欧美国产一区二区在线播放 | 一区二区三区网站| 女性生殖扒开酷刑vk| 欧美性xxxx极品hd欧美风情| 成年人视频在线免费观看| 成人免费xxxxx在线观看| 欧美精品自拍| 中文字幕一区二区三区人妻电影| 欧美亚洲综合在线| av毛片在线免费| 久久久久久久久久久久久久久久av | 国产精品国产三级国产普通话三级| a级片在线免费看| 日本久久久久久久| 亚洲乱码精品| 偷拍夫妻性生活| 欧美成人女星排行榜| 不卡福利视频| 国产尤物av一区二区三区| 久久久久久久久一| 精品国产av 无码一区二区三区| 欧美一级片一区| 影视亚洲一区二区三区| 受虐m奴xxx在线观看| 欧美电视剧在线看免费| 欧美xnxx| 国产成人无码a区在线观看视频|