線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1759
推到 Plurk!
推到 Facebook!

Client如何傳Array型態到Server

答題得分者是:jieshu
babyfish4
一般會員


發表:2
回覆:40
積分:18
註冊:2003-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-24 09:03:12 IP:61.63.xxx.xxx 未訂閱
各位前輩可否指點... 不知為何以前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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-24 11:31:20 IP:203.204.xxx.xxx 未訂閱
引言: 各位前輩可否指點... 不知為何以前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;這行就會出現問題
  .....
既然已經是Variant了,為什麼還要再做轉型,我都是直接用而已,Client端不用加OleVariant(),Server端亦不用再丟給一個陣列,直接當陣列用即可。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
babyfish4
一般會員


發表:2
回覆:40
積分:18
註冊:2003-08-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-24 11:44:04 IP:61.63.xxx.xxx 未訂閱
引言: [quote] 各位前輩可否指點... 不知為何以前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;這行就會出現問題
  .....
既然已經是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 不知您是怎麼用的呢??
babyfish4
一般會員


發表:2
回覆:40
積分:18
註冊:2003-08-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-24 12:02:49 IP:61.63.xxx.xxx 未訂閱
引言: 各位前輩可否指點... 不知為何以前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;這行就會出現問題
  .....
既然已經是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兄您好... 剛剛找到這篇文章 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....
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-24 13:06:18 IP:203.204.xxx.xxx 未訂閱
引言: 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/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-04-26 11:52:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!