xe10的第四個問題 |
缺席
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
前三個已在網友互動區發過, 這個問題比較大
以下是我查到問題點的地方, 這段程式作用是由手機向後端datasnap 探尋主機的存在 (indytime), 如果存在則建立 ClientModule, 同時進行SQLconnect, 讀取後端資料庫並拉回放置在手機的 SQLite上 以下程式在 XE8 下完全執行沒有問題 但我移到 XE10下, 一個byte也不改, 我發現 SQLconnect 會不斷的重覆連線 (因為我加了一個 showmessage 在 if wifi=true來判斷, 會一直秀 MessageDialog, 代表它是不斷重覆在執行) 先不說程式是否有瑕疵, 否則在XE8下也應該要有問題才是, 不知道 XE10改了什麼, 這問題實在很大, 如此幾乎APP就不用玩了 PS. 我碓認XE8是OK的, 因為先XE10丟手機會如此, 我移除APP, 再以 XE8 重丟一次, 是好的, 所以代表 XE8寫出來的後端 DATASNAP SERVER 沒有問題(我是使用DATA SNAP 最初級的 SERVER 做法, 不是RESTFUL 或 WEBBORKER) [code delphi] function TForm_Main.ConnectMsg : string; var conninfo : string; i, j : integer; fdname : string; begin fimg := TPath.GetTemppath PathDelim 'tmp.jpg'; // 停止訊息輸播 Timer_MsgShow.Enabled := False; DM_CameraPart.ActiveDialogShow(Title_3ipdMsgHeader, Title_MsgGet); conninfo := ''; with ClientModule_3ipd, DM_Camerapart do try try U_Util.WiFiDate := IdTime1.DateTime; Wifiyes := True; except Wifiyes := False; end; if Wifiyes then begin FDT_Msg.Close; // 決定是否進行偵測連線 if (ClientModule_3ipd <> nil) then ClientModule_3ipd.DisposeOf; ClientModule_3ipd := TClientModule_3ipd.Create(nil); try SQLConnection2.Connected := False; SQLconnection2.Params.Values['HostName'] := U_Util.AppDef.msg3ipdhost; SQLconnection2.Params.Values['Port'] := U_Util.AppDef.msg3ipdport; SQLConnection2.Connected := True; ServerMethods_3ipdClient.EchoString('MESSAGE_' U_Util.AppDef.PhoneName U_CommVar.Server_3ipdMsgStart); except conninfo := U_CommVar.ErrMsg_3ipdMsgDBConnectFail; ServerMethods_3ipdClient.EchoString('MESSAGE_' U_Util.AppDef.PhoneName U_CommVar.ErrMsg_3ipdMsgConnectFail); end; FDT_Msg.Open; if Wifiyes = True then try j := 0; CDS_Msg3ipd.Close; CDS_Msg3ipd.Params.ParamByName('iFROM0').Value := 0; CDS_Msg3ipd.Params.ParamByName('iDATE0').Value := DatetoStr(Date); CDS_Msg3ipd.Open; CDS_Msg3ipd.First; if (CDS_Msg3ipd.Eof and CDS_Msg3ipd.Bof) then begin conninfo := U_CommVar.Info_3ipdMsgNoNewMessage; ServerMethods_3ipdClient.EchoString('MESSAGE_' conninfo); end else begin while not CDS_Msg3ipd.Eof do begin Application.ProcessMessages; if not FDT_Msg.Locate('IBCODE',CDS_Msg3ipdIBCODE.Value,[]) then FDT_Msg.Append else FDT_Msg.Edit; inc(j); FDT_MsgISREAD.Value := 'N'; FDT_MsgPUTDEPT.Value := CDS_Msg3ipdPUTDEPT.AsString; FDT_MsgPUTDATE.Value := CDS_Msg3ipdPUTDATE.AsString; FDT_MsgPUTTIME.Value := CDS_Msg3ipdPUTTIME.AsString; FDT_MsgCONTENT1.Value := CDS_Msg3ipdCONTENT1.AsString; FDT_MsgCONTENT2.Value := CDS_Msg3ipdCONTENT2.AsString; FDT_MsgWEBSITE.Value := CDS_Msg3ipdWEBSITE.AsString; if CDS_Msg3ipdPICTSMALL.BlobSize > 0 then begin FDT_MsgPICTSMALL.Assign(CDS_Msg3ipdPICTSMALL); end; FDT_Msg.Post; // 下一則 CDS_Msg3ipd.Next; end; ServerMethods_3ipdClient.EchoString('MESSAGE_' U_CommVar.Server_Received1 InttoStr(j) U_CommVar.Server_Received2); end; except conninfo := U_CommVar.ErrMsg_3ipdMsgGetMessageError; ServerMethods_3ipdClient.EchoString('MESSAGE_' U_Util.AppDef.PhoneName ' ' conninfo); end; CDS_Msg3ipd.Close; SQLConnection2.Connected := False; if (ClientModule_3ipd <> nil) then ClientModule_3ipd.DisposeOf; // 填入固定訊息 FDT_Msg.Append; FDT_MsgISCLOSE.Value := 'N'; FDT_MsgISREAD.Value := 'N'; FDT_MsgPUTDEPT.Value := U_CommVar._3ipd_ShortHeader; FDT_MsgPUTDATE.Value := DatetoStr(Date); FDT_MsgPUTTIME.Value := TimetoStr(Time); FDT_MsgCONTENT1.Value := U_CommVar._3ipd_MsgADHeader; FDT_MsgCONTENT2.Value := U_CommVar._3ipd_MsgADServiceTime; FDT_MsgGETDEPT.Value := U_CommVar._3ipd_MsgADAll; // 'ALL'; FDT_MsgENDDATE.Value := '2999/12/31'; FDT_Msg.Post; FDT_Msg.First; if FDT_MsgPICTSMALL.BlobSize = 0 then begin img_Msg.Visible := False; memo_Msg.Visible := True; memo_Msg.Lines.Clear; memo_Msg.Lines.Add(FDT_MsgCONTENT1.AsString); memo_Msg.Lines.Add(FDT_MsgCONTENT2.AsString); end else begin img_Msg.Visible := True; memo_Msg.Visible := False; img_Msg.Bitmap.Assign(FDT_MsgPICTSMALL); end; end else memo_Msg.Lines.Text := U_CommVar.ErrMsg_3ipdMsgNoConnect #13 U_CommVar.Info_3ipdMsgServiceTime; finally DM_CameraPart.ActiveDialogShow('' ,''); // 判斷是否啟動輸播功能 Timer_MsgShow.Enabled := FDT_Msg.RecordCount > 1; end; result := conninfo; end; [/code] |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |