![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » Elevate Web Builder Technical Support » Support Forums » Elevate Web Builder General » View Thread |
Messages 11 to 19 of 19 total |
![]() |
Mon, May 14 2012 9:48 AM | Permanent Link |
Leslie | Raul,
Tim's JSon Dataset is probably enough for RPC in most cases. It is easy to work with and uses significantly less memory then XMLRPC. I will use XMLRPC only as last resort. RTCFunctions seem to handle only RTC's own format and XMLRPC, and the responce is the same format. On the server side a little modified DataProvider can be used in almost the same manner as functions to create any kind of response. For now JSON seems good enough. Later on we might switch to our own more optimized format. Cheers, Leslie |
Mon, May 14 2012 1:43 PM | Permanent Link |
Manfredt | Leslie wrote:
Raul, > RTCFunctions seem to handle only RTC's own format and > XMLRPC, and the responce is the same format. The latest version of RTC, version 5.14, can handle JSON+REST. Regards, Manfredt Kavetu |
Mon, May 14 2012 3:29 PM | Permanent Link |
Leslie | Manfredt wrote:
<<The latest version of RTC, version 5.14, can handle JSON+REST. >> Checked with the latest starter edition and I do not see yet how. TRtcServerModule.DataFormats offers only RTC and XMLRPC. Could not find any demo with having the string "JSON" anywhere in the source. Cheers, Leslie |
Mon, May 14 2012 7:05 PM | Permanent Link |
Manfredt | Leslie wrote:
<<Checked with the latest starter edition and I do not see yet how. TRtcServerModule.DataFormats offers only RTC and XMLRPC. Could not find any demo with having the string "JSON" anywhere in the source. >> Check this link: http://www.realthinclient.com/files/updates.html Regards, Manfredt |
Tue, May 29 2012 2:29 AM | Permanent Link |
thomh | Hi Leslie,
Did you get the communication working effectively between EWB and RTC? If so, any chance you can upload a small example of how this is done? Any help to get started would be appreciated. Thanks in advance. // Thom |
Sun, Dec 30 2012 1:08 PM | Permanent Link |
thomh | Hi All,
Did anybody ever the communication working effectively between EWB and RTC? If so, any chance you can upload a small example of how this is done? Any help to get started would be appreciated. Thanks in advance. // Thom |
Mon, Dec 31 2012 5:42 AM | Permanent Link |
Walter Matte Tactical Business Corporation | I did not use RtcFunctions.
Yes drop on two components and code 2 methods and you have a working Http Server. Now the heavy lifting ... interogate the requests and formulate responses. Use RtcHttpServer component and link a RtcDataProvider. Here is some sample code which dumps what is coming in - to see the "request": OnCheckRequest - confirm you want this component to receive the request and handle the response. OnDataReceived - procedure TForm1.RtcDataProvider3CheckRequest(Sender: TRtcConnection); begin // Accept anything..... // Normally you would be looking for a specific Filename... with Sender as TRtcDataServer do begin Accept; end; end; procedure TForm1.RtcDataProvider3DataReceived(Sender: TRtcConnection); var i : integer; begin with Sender as TRtcDataServer do begin if (Request.Method='GET') then begin if Request.Complete then begin if Request.Query.ItemCount > 0 then begin memo1.lines.Add('GET' + #13#10+ Request.Query.Text); end; Memo1.Lines.add(''); Memo1.Lines.Add(Request.Method + ' ' + Request.FileName); { Now take the request and parameters and do the work.... and formulate a reponse and send it back in the write statement.... } write('I received the GET '); // <<<<< Respond Back.... end; end else begin Request.Params.AddText(Read); if (Request.Complete) then begin if Request.Params.ItemCount > 0 then begin memo1.lines.Add('POST '+ #13#10 + Request.Params.Text + #13#10 + 'ContentType ' + Request.ContentType + #13#10 + 'ContentLength ' + IntToStr(Request.ContentLength)); memo1.Lines.Add(Request.ToString); for i := 0 to Request.Params.ItemCount - 1 do begin memo1.lines.Add(Request.Params.ItemName[i] + ' <=> ' + Request.Params.ItemValue[i]); end; end; Memo1.Lines.add(''); Memo1.Lines.Add('3' +Request.Method + ' ' + Request.FileName); memo1.lines.Add('POST '+ #13#10 + Request.Params.Text + #13#10 + 'ContentType ' + Request.ContentType + #13#10 + 'ContentLength ' + IntToStr(Request.ContentLength)); write('Response to post....); // << Respond back end; end; end; end; // --------------------------------------------------------------------- Another Example: I'm checking for /DATASET/ This is what EWB sends when you do a Database.Load(MyDataset); I wrote 2 functions - one to respond to SQL Queries and one to respond to Table requests My queries always start with the name QRY - hence the test. The function EWBGetQuery executes the query and returns the JSON. Only my Name "QRYXXX' and parameters are sent Write(RtcString(Conn.EWBGetQuery(sTable, Request.Query))); The is EWB code asking for a Query. procedure TfrmDonorSearch.imgSearchBtnClick(Sender: TObject); begin QryDonorSearch1.Params.Clear; if edOrg.Text > '' then QryDonorSearch1.Params.Add('Organization='+Uppercase(edOrg.Text)); if edLN.Text > '' then QryDonorSearch1.Params.Add('LastName='+Uppercase(edLN.Text)); if edFN.Text > '' then QryDonorSearch1.Params.Add('FirstName='+Uppercase(edFN.Text)); if QryDonorSearch1.Params.Count = 0 then ShowMessage('Set Search Criteria') else Database.Load(QryDonorSearch1); end; The second function EWBGetData - expects a Table and and possible filter and sends back all fields and all data or filtered data in JSON. Write(RtcString(Conn.EWBGetData(sTable, sFilter))); // Here are the two DataProvider Functions.... procedure TdmBasicDonorServer.dbDataCheckRequest(Sender: TRtcConnection); begin with Sender as TRtcDataServer do begin if Copy(Uppercase(Request.FileName),1,9) = '/DATASET/' then Accept; end; end; procedure TdmBasicDonorServer.dbDataDataReceived(Sender: TRtcConnection); var Conn : IDBISAMPool; sTable : string; sFilter : string; begin with Sender as TRtcDataServer do begin if Request.Complete then begin sTable := Copy(Request.FileName,10, length(Request.FileName) - 9); // sTable will contain "MyDataset" Conn := FConnections.LockConnection; try if Copy(UpperCase(sTable),1,3) = 'QRY' then begin Response.HeaderText := Response.HeaderText + // 'Cache-Control: must-revalidate, post-check=0, pre-check=0' + #13#10 + RtcString('Cache-Control: no-cache, no-store' + #13#10); Write(RtcString(Conn.EWBGetQuery(sTable, Request.Query))); end else begin sFilter := URL_Decode(Request.Query.Value['filter']); Response.HeaderText := Response.HeaderText + // 'Cache-Control: must-revalidate, post-check=0, pre-check=0' + #13#10 + RtcString('Cache-Control: no-cache, no-store' + #13#10); Write(RtcString(Conn.EWBGetData(sTable, sFilter))); end; finally FConnections.UnlockConnection(Conn); end; end; end; end; Walter thomh wrote: Hi All, Did anybody ever the communication working effectively between EWB and RTC? If so, any chance you can upload a small example of how this is done? Any help to get started would be appreciated. Thanks in advance. // Thom |
Thu, Jan 3 2013 8:28 AM | Permanent Link |
thomh | Hi Walter!
Thank you very much for the detailed response. However, one problem I see is that Grid.Columns.Clear only clears the data from the grid and not the columns. So when I build the dataset and grid at runtime with different JSON return data I am unable to clear the previous grid columns. Can you confirm this? // Thom |
Thu, Jan 3 2013 9:40 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Thom,
<< However, one problem I see is that Grid.Columns.Clear only clears the data from the grid and not the columns. So when I build the dataset and grid at runtime with different JSON return data I am unable to clear the previous grid columns. Can you confirm this? >> Yes, I can confirm this behavior. I'll have a fix for it in the next build. Thanks, Tim Young Elevate Software www.elevatesoft.com |
« Previous Page | Page 2 of 2 | |
Jump to Page: 1 2 |
This web page was last updated on Wednesday, April 23, 2025 at 06:31 AM | Privacy Policy![]() © 2025 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |