Client如何傳Array型態到Server |
答題得分者是:jieshu
|
babyfish4
一般會員 發表:2 回覆:40 積分:18 註冊:2003-08-04 發送簡訊給我 |
各位前輩可否指點...
不知為何以前Delphi 5.0就可以,現在Delphi 7.0就不行??
Client端
var sFormula:array[0..3] of string; ..... iReportSerial:=SocketConnection.AppServer.CreateReport(OleVariant(sFormula),OleVariant('OFI_TX030400')); ..... Server端 function TOFI_APS00Remote.CreateReport(sFormulaArray: OleVariant; const sReportName: WideString): OleVariant; var sFormula:array[0..3] of string; ..... sFormula:=sFormulaArray;這行就會出現問題 ..... | ||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 各位前輩可否指點... 不知為何以前Delphi 5.0就可以,現在Delphi 7.0就不行?? Client端既然已經是Variant了,為什麼還要再做轉型,我都是直接用而已,Client端不用加OleVariant(),Server端亦不用再丟給一個陣列,直接當陣列用即可。var sFormula:array[0..3] of string; ..... iReportSerial:=SocketConnection.AppServer.CreateReport(OleVariant(sFormula),OleVariant('OFI_TX030400')); ..... Server端 function TOFI_APS00Remote.CreateReport(sFormulaArray: OleVariant; const sReportName: WideString): OleVariant; var sFormula:array[0..3] of string; ..... sFormula:=sFormulaArray;這行就會出現問題 .....
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
babyfish4
一般會員 發表:2 回覆:40 積分:18 註冊:2003-08-04 發送簡訊給我 |
引言: [quote] 各位前輩可否指點... 不知為何以前Delphi 5.0就可以,現在Delphi 7.0就不行?? Client端jieshu兄您好... 您說Client端不用加OleVariant()... 我將Client程式改成 iReportSerial:=SocketConnection.AppServer.CreateReport(sFormula,'OFI_TX030400'); Compile更本不會過耶,有下列錯誤訊息 [Error] OFI_TX030400.pas(268): Type not allowed in Variant Dispatch call 不知您是怎麼用的呢??var sFormula:array[0..3] of string; ..... iReportSerial:=SocketConnection.AppServer.CreateReport(OleVariant(sFormula),OleVariant('OFI_TX030400')); ..... Server端 function TOFI_APS00Remote.CreateReport(sFormulaArray: OleVariant; const sReportName: WideString): OleVariant; var sFormula:array[0..3] of string; ..... sFormula:=sFormulaArray;這行就會出現問題 .....既然已經是Variant了,為什麼還要再做轉型,我都是直接用而已,Client端不用加OleVariant(),Server端亦不用再丟給一個陣列,直接當陣列用即可。 |
||
babyfish4
一般會員 發表:2 回覆:40 積分:18 註冊:2003-08-04 發送簡訊給我 |
引言: 各位前輩可否指點... 不知為何以前Delphi 5.0就可以,現在Delphi 7.0就不行?? Client端jieshu兄您好... 剛剛找到這篇文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=32484 已經把問題解決了 Client宣告時不能為 var sFormula:array[0..3] of string; 要宣告為 var sFormula:olevariant; 然後再Create sFormula:=VarArrayCreate([0,3],varOleStr); 這樣Compile就不會出錯 Server端也可以直接接來用... Thanks....var sFormula:array[0..3] of string; ..... iReportSerial:=SocketConnection.AppServer.CreateReport(OleVariant(sFormula),OleVariant('OFI_TX030400')); ..... Server端 function TOFI_APS00Remote.CreateReport(sFormulaArray: OleVariant; const sReportName: WideString): OleVariant; var sFormula:array[0..3] of string; ..... sFormula:=sFormulaArray;這行就會出現問題 .....既然已經是Variant了,為什麼還要再做轉型,我都是直接用而已,Client端不用加OleVariant(),Server端亦不用再丟給一個陣列,直接當陣列用即可。 jieshu兄您好... 您說Client端不用加OleVariant()... 我將Client程式改成 iReportSerial:=SocketConnection.AppServer.CreateReport(sFormula,'OFI_TX030400'); Compile更本不會過耶,有下列錯誤訊息 [Error] OFI_TX030400.pas(268): Type not allowed in Variant Dispatch call 不知您是怎麼用的呢?? |
||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: jieshu兄您好... 剛剛找到這篇文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=32484 已經把問題解決了 Client宣告時不能為 var sFormula:array[0..3] of string; 要宣告為 var sFormula:olevariant; 然後再Create sFormula:=VarArrayCreate([0,3],varOleStr); 這樣Compile就不會出錯 Server端也可以直接接來用... Thanks....沒錯!就是這樣,不好意思沒有講清楚,也可以用VarArrayOf([Param1, Param2]),如果已知參數值的話。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |