Search the Community
Showing results for tags 'datasnap'.
Found 14 results
-
I have a problem with my DataSnap client application on Android 11 OS. Not every time but from time to time and on different places in my code. Sometimes I recive this message When i click Break debuger points on this line in code What can be a problem
-
I am developing an android application on Delphi 12. My application connects to a DataSnap server. Some times, but not every time, my application throws this exception. Once when the application starts, the second time when a new form is opened and sometimes everything works without error I suppose everything crashes on line 312 in this module Those any one know the reason of this?
-
DataSnap Could not convert variant of type (Array Byte) into type (Integer)
dlucic posted a topic in Network, Cloud and Web
I have simple DataSnap server application with connection to MS SQL Server and also simple client application. On the server side I have TFDConnection object to connect to MS SQL Server. I also have TFDQuery with simple sql "insert into slika_test (slika) values (:slika)". Param slika is for image datatype in table test_slika. This is properties of Param slika of TFDQuery object Of course, there is DataSetProvider object On the client side I have TSQLConnection and DSProviderConnection object's. I connect to DataSnap server application with them. There is also TClientDataSet object This is code for click on Button I load image from Image1 object on the form into MemoryStream. Than I put that MemoryStream in Param of ClientDataSet object and execute. When I do that for the first time everything goes well. Data is stored in MS SQL table. But when I click it another time and same code executes I receive this error on the server application Any body knows what is the problem? -
I have a problem when my andoroid device lost wifi and connection broke. I can not reestablished that in ordinary maner. My andorid application have TSQLConnection object that connects to DataSnap server application. Everything works fine until I issue network problem. When wifi temporarly lost connection TSQLConnection also lost connection and I get Socket error #103 when I try to open TClientDataSet and that is OK. When I try it once again it works fine. I supose my application successfuly reconnect and open the query. But when I tryed it for the third time I have Socket error # 104. And again. Once OK another time Socket error #104. There is no problems when wifi connection is stable. What should I do?
-
I created a Datasnap server application that connects to the MSSQL database via the TFDConnection object, and then executes a specific SQL query via the TFDQuery object, the results of which are further forwarded via the TDataSnapProvider object. This is screenshot of that application I created a simple client application that opens this query and displays the results in a ListBox. This is the code : When I run application on Windows I get a correct result with Serbian letters as you can see in the image below But when U start the same application on Android, I have a problem with display of Serbian letters. What is the problem? Thanks
-
Hello, I have to make a new desktop project with a database in the cloud. They suggested I use Datasnap, but with the release of Rad Server I was told that datasnap may be discontinued. Then DMVC Framework was recommended to me, but I don't know it (just the name). I would like some advice... With DMVC Framework can I do the same as with Datasnap? What dou you recommend? Sorry for so much ignorance, I'm quite a beginner. greetings
- 12 replies
-
Datasnap Server doesn't response after awhile?
Mustafa Simsek posted a topic in Network, Cloud and Web
Hi, i have a mobile app, using datasnap server. Datasnap Server : A vcl standalone .exe program. Datasnap server (no rest), DBX and SQL Server connection. Client : FMX app, Android clients and TClientDataSet. A while before, I have 20-25 clients, there was no problem. But android client numbers increase, 190-200. Server running awhile but about one day later, it didn't response anything. Clients doesn't connect to server. I close and open datasnap server program. Then clients connect and operate again. How could i solve this? object DSServer1: TDSServer Left = 96 Top = 11 end object DSTCPServerTransport1: TDSTCPServerTransport PoolSize = 250 Server = DSServer1 Filters = <> AuthenticationManager = DSAuthenticationManager1 Left = 96 Top = 73 end object DSAuthenticationManager1: TDSAuthenticationManager OnUserAuthenticate = DSAuthenticationManager1UserAuthenticate Roles = <> Left = 96 Top = 197 end object DSServerClass1: TDSServerClass OnGetClass = DSServerClass1GetClass Server = DSServer1 Left = 200 Top = 11 end I increase Poolsize to 250. But it didn't solve problem. Thanks. -
The difficulties when trying to use OpenSSL filters on a DataSnap application with an Android client have numbers of entries in various forums that go back a number of years. To summarize the problem: 1. Create a DataSnap server that specifies a filter of RSA, in my case using Delphi 11 Update 2, running on a Windows server as a service. 2. Create a DataSnap client that is deployed to an Android device, in my case a Samsung SD-9 with an ARM64-v8a instruction set running Android 10 3. The client application crashes because it is unable to load a required OpenSSL module. I have tried a number of solutions that are discussed in various places but nothing works for me. My question is: Does anyone know of a RECENT posting that provides a workable solution to getting an RSA filter to work with DataSnap/Indy/Firemonkey on an Android device? My current understanding that the root cause of the problem is probably the failure of Indy to remain current with Google's erratic development habits, that has deprecated OpenSSL in favor of a branch called Boring. Has this been addressed effectively by anyone? If not, are there any plans to do so? Thanks in advance, Milan
-
Delphi 11.1 Datasnap Having trouble writing a blob field from a client app to the database on server. Client uses SQLite database and main database on server is Firebird. Client app uses TMSFNCSignature Capture component to write the signature to the SQLite database blob field like this and the image is actually saved to the blob field: procedure TMainForm.Save_Signature; var ms : tMemoryStream; begin ms := TMemoryStream.Create; EMUSig.SaveToImageStream(ms); Open_InvSigQry(MarafillerDM.FDQuerySchedSALEDATE.Value, MarafillerDM.FDQuerySchedMACHID.Value); MarafillerDM.InvSigQry.Insert; MarafillerDM.InvSigQrySALEDATE.Value := MarafillerDM.FDQuerySchedSALEDATE.Value; MarafillerDM.InvSigQryMACHID.Value := MarafillerDM.FDQuerySchedMACHID.Value; MarafillerDM.InvSigQrySIGNATURE.LoadFromStream(ms); MarafillerDM.InvSigQry.Post; MarafillerDM.InvSigQry.Close; end; Using SQLite DBBrowser I can confirm that the image is written to the database (.png image). My problem is writing that image to a blob field on the server database (using datasnap for the connection). The table I am writing to on the server has several fields including 1 blob field defined as - 'CUSTSIGNATURE BLOB SUB_TYPE 0 SEGMENT SIZE 80' in the Firebird database. I use the following code to write to the database. The EMUInvQry gathers the necessary data to transfer from a couple of tables: procedure TMainForm.Transfer_EMUInvoice; var ms : tStream; begin MarafillerDM.EMUInvClient.Insert; MarafillerDM.EMUInvClientINVNUM.AsString := MarafillerDM.EMUInvQryDOCKET.AsString; MarafillerDM.EMUInvClientINVDATE.Value := ModifiedJulianDateToDateTime(MarafillerDM.EMUInvQrySALEDATE.Value); MarafillerDM.EMUInvClientMACHID.Value := MarafillerDM.EMUInvQryMACHID.Value; MarafillerDM.EMUInvClientTOTPKTS.Value := MarafillerDM.EMUInvQryPKTSALES.Value; MarafillerDM.EMUInvClientTOTVALUE.Value := MarafillerDM.EMUInvQryMACHVALUE.Value; MarafillerDM.EMUInvClientSITECODE.Value := MarafillerDM.EMUInvQrySITECODE.Value; MarafillerDM.EMUInvClientTOTRETPKTS.Value := MarafillerDM.EMUInvQryRETURN_PKTS.Value; MarafillerDM.EMUInvClientTOTRETVALUE.Value := MarafillerDM.EMUInvQryRETURN_VALUE.Value; MarafillerDM.EMUInvClientADJTOTPKTS.Value := MarafillerDM.EMUInvQryADJ_PKTS.Value; MarafillerDM.EMUInvClientADJTOTVALUE.Value := MarafillerDM.EMUInvQryADJ_VALUE.Value; if (MarafillerDM.EMUInvQryPAYEMUCOMM.AsString = 'F') then MarafillerDM.EMUInvClientCOMMISSION.Value := MarafillerDM.EMUInvQryCOMMISSION.Value; MarafillerDM.EMUInvClientBALANCEDUE.Value := MarafillerDM.EMUInvQryBAL_DUE.Value; MarafillerDM.EMUInvClientFILLER.AsString := sFillerName; ms := TStream.Create; MarafillerDM.EMUInvQrySIGNATURE.SaveToStream(ms); try if Assigned(ms) then MarafillerDM.EMUInvClientCUSTSIGNATURE.LoadFromStream(ms); finally ms.Free; end; MarafillerDM.EMUInvClient.Post; end; When I check the Firebird database, all fields are transferred except the blob field which is set to null. Can someone please advise me how to correctly transfer the blob field data. Have googled and tried a few different approaches but nothing works for me. Obviously missing something but can't see the forest for the trees. Any help would be appreciated. Bill Zwirs
-
I have a very strange situation. I have developed an online ordering app connecting to a Datasnap server. This is the strange part: purely by luck, I found out that when I have a database connection active (by another software) on the server where the datasnap server resides, the app runs very fast; when I don't it is way too slow(er). I use Interbase and Firedac. Does this make sense? Has anyone come across an issue like this? It's like when the database has no connections active, the first connection is taking way too long.
-
Datasnap server updating error image blob column
Michel Bernabela posted a topic in Network, Cloud and Web
Hello, I am busy with for quite awhile now with an issue with no results. I have looked many internet sites, but without any luck at all. > > I am trying to insert/update (text/image) data via a Client to a Datasnap Server by using FDQuery and ExecSQL (XE7 with Interbase 2017). > > If I only make the use of text, insertion and/or updation works fine and perfect without any problems. > But as soon as I add an extra image parameter as Stream, the following error message is produced: > > "HTTP/1.1 500 Internal Server Error" > > But the record INCLUDING the image stream is inserted into the remote Datasnap database, but my client application afterwards crashes and produces another access violation error upon closing the client app. > > So everything works fine/perfect with text only, WITHOUT image (stream) param. > > My server method uses FDQuery component for the insert (and one for update not included in this example)): > > // Push punch data to HQ > Function TdmServerMethod.iApp_PushPunch(FPdtFrom, FPdtDateIn, FPmsPic: TMemoryStream): Boolean; > Begin > Result := True; // Init > With qryPushPunch Do Begin //FDQuery component > Try > FPmsPic.Position := 0; // FPmsPic.Seek(0, soFromBeginning); Return cursor of stream to the beginning > Close; // Make sure dataset is not active > ParamByName('EP_FROM').AsDate := FPdtFrom; > ParamByName('TS_DATEIN').AsDate := FPdtDateIn; > ParamByName('TS_PICIN').AsStream := FPmsPic; THIS LINE WILL CAUSE/PRODUCE THE ERROR > ParamByName('TS_PICIN').LoadFromStream(FPmsPic, ftBlob); THIS LINE WILL CAUSE/PRODUCE THE ERROR > ExecSQL(); // Execute SQL statement > CloseStreams; // Cleanup stream > Close; // Cleanup dataset > Except > Result := False; > End; > End; > End; > > My Client REST method is as follow: > > Function TdmServerMethodClient.iApp_PushPunch(FPdtFrom: TDateTime; FPdtDateIn: TDateTime; FPmsPic: TMemoryStream; Const ARequestFilter: String): Boolean; > Begin > If FiApp_PushPunchCommand = Nil Then Begin > FiApp_PushPunchCommand := FConnection.CreateCommand; > FiApp_PushPunchCommand.RequestType := 'POST'; > FiApp_PushPunchCommand.Text := 'TdmServerMethod."iApp_PushPunch"'; > FiApp_PushPunchCommand.Prepare(TdmServerMethod_iApp_PushPunch); > End; > FiApp_PushPunchCommand.Parameters[0].Value.AsDateTime := FPdtFrom; > FiApp_PushPunchCommand.Parameters[1].Value.AsDateTime := FPdtDateIn; > FiApp_PushPunchCommand.Parameters[10].Value.SetStream(FPmsPic, FInstanceOwner); > FiApp_PushPunchCommand.Execute(ARequestFilter); AFTER EXECUTION THE ERROR "HTTP/1.1 500 INTERNAL ERROR" IS TRIGGERED, BUT THE RECORD INCLUDING THE IMAGE IS PERFECTLY INSERTED/UPDATED IN DE DATABASE > Result := FiApp_PushPunchCommand.Parameters[11].Value.GetBoolean; > End;- 4 replies
-
- datasnap
- image stream
-
(and 3 more)
Tagged with:
-
Hi, Just want to share this and to eventually have confirmation (or not !!) I suspect a bug in the DoSetCredential method used by TDSRestConnection (System.Net.HttpClient.Win, TWinHTTPClient.DoSetCredential) I'm just upgrading an (working !) application from Delphi XE7 to Delphi 10.3.1. It's an application using Datasnap REST to communicate with a standalone Datasnap server (or IIS ISAPI in production) By doing my first tests I immediatly encountered the following problem: By calling the TDSRestConnection.TestConnection I get this error: Error adding header (87): Incorrect parameter ==> ('Paramètre incorrect' translated from french) Basic authentication is used. After debugging the code I saw that TNetEncoding.Base64.Encode adds a linebreak after 76 chars (The base64 encoded credentials goes slightly over 80chars...). This seems the default behavior the TBase64Encoding class but the WinHttpAddRequestHeaders API don't like it. I have changed the code in System.Net.HttpClient.Win to change the CharsPerLine to 255 and then it is OK. Bug or misuse ? Thanks ! Frederic
-
Remote Error: Error reading ServerMethods.ClientHeight: Property ClientHeight does not exist
Ameera Akmalia posted a topic in General Help
Hello. I created a datasnap client-server application. Whenever I re-open the project or make changes in ServerMethods unit, the error occurred when I try to activate the clientdataset in the ClientModule unit. Anyone knows how to solve this issue? Thanks in advance. I have attached the screenshot of the error occurred. -
Hi, this is my very first post in this new forum (that I like a lot so far, still learning all functionalities). IIRC recently (Berlin? Tokyo?) some attributes were introduced in order to set a Datasnap method to respond a POST (or PUT) request without having to follow the 'updateXXX' naming convention... I was looking for a reference this morning but could not find it. Anyone can lend me a link or an example? Thanks in advance, Andrea