讓我們繼續擴展上次的程式,上次寫到呼叫 DataSnap 的 Sample function,要改成由 client 傳參數給 server 端,回傳資料庫中對應的資料,對熟悉 delphi 資料庫寫作的各位來說相信應該不是難事,讓我們先假設有一個 table 名為 employee,資料內容如下

  iOSWithDB1  

  假設我們的目標是,在 client 輸入 EmployeeID,然後傳給 DataSnap Server 查找到這筆員工資料,回傳符合條件的 FirstName 欄位,該怎麼做呢?

  是的,依據前一篇的文章依樣畫葫蘆,DataSnap Server 端新增一個 method ,source code 如下:

  iOSWithDB2  

 Client 端的 source code 如下:

  iOSWithDB3  

  要求回傳 EmployeeID 為 2 的員工的 FirstName,執行結果一如預期

  iOSWithDB4  

  如果只是要舉這樣的例子,簡直就是騙各位看官們的眼球,雖然是有跟資料庫連上線了,但是真實世界可能會要求「可不可以找出 FirstName 為"陳"的職稱(Title)為何呢?」你會想那有什麼困難的,不就改成如下的程式碼嗎?

  Server 端

  iOSWithDB5  

  Client 端

  iOSWithDB6  

  執行結果

  iOSWithDB7 

  為什麼回傳資料是空白呢?難道程式碼寫錯了??再三檢查,相信短短這麼幾行應該沒有眼花打錯才對,那為什麼結果卻不如預期呢?

  讓我們瞧瞧 Server 端接收到的參數為何?修改一下 Server 端的程式碼如下

  iOSWithDB8  

  執行結果

  iOSWithDB9  

  Server 端根本就沒有接收到參數,可是不是明明 Client 端有傳參數"陳"嗎?

  其實問題是出在參數是「中文」,畢竟電腦是洋人發明的玩意兒,在處理中文的時候,有時總是得多點手續,該怎麼解決呢?

 

...to be continued

 

    縹緲 發表在 痞客邦 留言(0) 人氣()