略過巡覽連結。
略過巡覽連結      
  如何在Server端使用StoredProcedure查詢?錯誤訊息:找不到預存程式 'SP_GET_USERSTOLIST? 觀看回應
在InfoCommand的CommandText只能填入你的預存程式名稱,而不是整個sql語句,如:
CommandText=SP_GET_USERSTOLIST
CommandType=StoredProcedure
InfoParameters建立一InfoParameters,ParameterName=UserID
ServiceManager要註冊一function專門呼叫此InfoCommand回傳object,就可以調用成功了
更多詳情,請參考
http://www.infolight.com.tw/download/file/InfoCommand%E4%BD%BF%E7%94%A8%E5%AD%98%E5%84%B2%E9%81%8E%E7%A8%8B.doc





  如何在server上抓取當前login的User. 觀看回應
直接寫使用object[] user_id = this.GetClientInfo(ClientInfoType.LoginUser);
This是指DataModule這個Clasee,在Server端都是以DataModule這個Class為範圍的。





  寫了一個ServerMethod後始終在return傳回後,發生錯誤? 觀看回應
在Server Method Return值時,其陣列的第一個參數一定必須傳回0, (如 ret[0] 必須是0),這是EEP系統用的返回參數,0代表正常執行,1代表有錯誤發生,因此,如果你傳為不是0的值,系統都會認為發生了錯誤,但從第二個參數開始,你可以自由使用。




  何時該使用 Server Method,使用 server method 有什麼好處? 觀看回應
ServerMethod提供的是一種架構,非常自由,比如可以傳遞任意參數,可以返回任意結果,可以完成很多功能。因為在N-Tier架構中,不管是Windows Client還是IIS Server都不應該可以直接連線到Database Server才對(基於安全與流量管制理由),因此Client端要處理大量的資料或用程式自由存取資料庫,就必須藉由Server Method來處理,因此Server Method就好像Web Service一樣,提供所需的資料或商業邏輯的處理服務等等。至於什麼時候需使用Server Method,一般像大量資料的統計或者月結(年結)等都比較適合,這樣可以避免大量資料在server與client之間的傳輸。還有一些不需要client編輯操作的功能都可以放在server端用serverMethod來包裝處理。總之,Server Method用來處理與資料庫有關的商業邏輯,將U/I分離,因此Server Method也是一種SOA的架構之一。




  Async call back後show另一form會當掉 觀看回應
源碼如下:
public void p_rod052_back(object[] oret1)
{
string repn = "rod052";
cr070v.Form1 temp = new cr070v.Form1();
temp.repn = repn;
temp.MdiParent = this.MdiParent;
temp.WindowState = FormWindowState.Maximized;
temp.Show();
}
異步呼叫與Form的show是有沖突.
以上述例子來看,解決方法:
1. 在public void p_rod052_back(object[] oret1)上面加一行程式:
public delegate void ShowForm();//定義一個委託
2. 原public void p_rod052_back(object[] oret1)改為:
{
ShowForm call = delegate()
{
string repn = "rod052";
cr070v.Form1 temp = new cr070v.Form1();
temp.repn = repn;
temp.MdiParent = this.MdiParent;
temp.WindowState = FormWindowState.Maximized;
temp.Show();
}
this.Invoke(call);
}