在函數間不能傳遞32個以上參數的疑難問題

本文中的示例主要是解決在函數間不能傳遞多個(32個以上)參數的問題,解題的具體思路就是采用記錄類型作爲函數的輸入和返回值,所以我們需要先定義一個視圖,把它作爲一個結構類型,函數的輸入和輸出就用它作爲數據類型,但是在研究過程中存在record類型不能直接作爲函數的參數傳入參數,所以我們需要建立一個函數test_rec3,這個函數的主要功能就是返回一個test_view形式的record結構,這樣在 test_rec2中將test_rec3的結果作爲參數傳入,可以避免在直接傳入record類型變量的時候的錯誤,在test_rec2中,又可以給其他傳入參數的其他屬性賦值,這樣可以多建幾個類似test_rec2的函數,完成對傳入闡述的賦值,最後在test_rec1中賦值給一個record 類型變量,這樣test_rec2的返回值可以作爲其他函數輸入,而且這個輸入的變量相當于一個結構,雖然它是一個變量,但卻包含了多個變量的信息,從而實現了向一個函數中輸入操作系統限制數量的參數(32個) 。

create view test_view (p1,p2) as select cast(null as int),cast(null asint)

create or replace function test_rec1(int,int) returns test_view as

'

declare

view_rec test_view%rowtype ;

view_rec1 test_view%rowtype ;

begin

view_rec.p1 = 2;

view_rec.p2 = 3;

select * into view_rec1 from test_rec2( test_rec3($1),$2);

return view_rec1;

end;'language 'plpgsql';

create or replace function test_rec2(test_view,int) returns test_view as

'

declare

view_return alias for $1;

begin

view_return.p2 = $2;

return view_return;

end;'language 'plpgsql';

create or replace function test_rec3(int) returns test_view as

'

declare

view_return test_view%rowtype;

begin

view_return.p1 = $1;

view_return.p2 =0;

return view_return;

end;'language 'plpgsql';

處理QueryString函數漢字參數傳遞錯誤
  最近在處理Resonse.QueryString函數漢字參數傳遞時,發生不能完整傳遞參數的具體值的錯誤,經過分析,發現是Web.config中的encoding和全球化設置不正確,先貼出來,以免同仁再犯同樣的錯誤:  1、首行:<?x...查看完整版>>處理QueryString函數漢字參數傳遞錯誤
 
經典問題:向setTimeout傳遞函數參數
也許你過去在setTimeout中傳參數一直是這樣setTimeout("pass(" + argu + ")",1000)這樣只能傳字符串,對傳遞object就無能爲力了,需要大費文章.然而別忘了,第一個參數還可以是function!!!看以下代碼實現向裏面的functi...查看完整版>>經典問題:向setTimeout傳遞函數參數
 
SQL中函數返回表,傳遞一個參數,無法喚醒用戶自定義函數,解決方法!
1: 把函數改成標量函數,及只返回一個值的方法,該方法根據具體情況修改既可.在此不討論該方法2:用遊標處理,用戶自定義函數返回表.具體問題:CREATE function 函數(@字段1 as varchar(20),@字段2 as int ,@字段3 int)r...查看完整版>>SQL中函數返回表,傳遞一個參數,無法喚醒用戶自定義函數,解決方法!
 
經典問題:向setTimeout傳遞函數參數
經典問題:向setTimeout傳遞函數參數 經典問題:向setTimeout傳遞函數參數 也許你過去在setTimeout中傳參數一直是這樣 setTimeout("pass(" + argu + ")",1000) 這樣只能傳字符串,對傳遞object就無能爲力了,需要...查看完整版>>經典問題:向setTimeout傳遞函數參數
 
C#語言函數參數的傳遞
  就像C語言衆多的後世子孫一樣,C#的函數參數是非常講究的。首先,參數必須寫在函數名後面的括號裏,這裏我們有必要稱其爲形參。參數必須有一個參數名稱和明確的類型聲明。該參數名稱只在函數體內部可見。因此在該...查看完整版>>C#語言函數參數的傳遞
 
ASP.Net處理QueryString函數漢字參數傳遞錯誤
  最近在處理Resonse.QueryString函數漢字參數傳遞時,發生不能完整傳遞參數的具體值的錯誤,經過分析,發現是Web.config中的encoding和全球化設置不正確,先貼出來,以免同仁再犯同樣的錯誤:1、首行:<?xml v...查看完整版>>ASP.Net處理QueryString函數漢字參數傳遞錯誤
 
用binder2nd實現find_if算法中函數對像的參數傳遞
用binder2nd實現find_if算法中函數對像的參數傳遞find_if 算法的定義如下:template<class InputIterator, class T, class Predicate> inline InputIterator find_if( InputIterator First, Input...查看完整版>>用binder2nd實現find_if算法中函數對像的參數傳遞
 
SQL中函數返回表,傳遞一個參數,無法喚醒用戶自定義函數,解決方法!
1: 把函數改成標量函數,及只返回一個值的方法,該方法根據具體情況修改既可.在此不討論該方法2:用遊標處理,用戶自定義函數返回表.具體問題:CREATE function 函數(@字段1 as varchar(20),@字段2 as int ,@字段3 int)r...查看完整版>>SQL中函數返回表,傳遞一個參數,無法喚醒用戶自定義函數,解決方法!
 
學習C++(1):函數傳遞參數的理解
函數傳遞參數的類型主要包括:傳值,傳指針,傳引用。這是每本C++書上都會詳細講述的,並且不厭其煩的告訴我們傳值是不會改變實參值的。 在csdn的C++版上看到一個有趣的問題,一個Stack的類,寫了一個打印函數p...查看完整版>>學習C++(1):函數傳遞參數的理解
 
 
回到王朝網路移動版首頁