Search the Community
Showing results for tags 'datasnap'.
Found 4 results
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.Value.AsDateTime := FPdtFrom; > FiApp_PushPunchCommand.Parameters.Value.AsDateTime := FPdtDateIn; > FiApp_PushPunchCommand.Parameters.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.Value.GetBoolean; > End;
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
Ameera Akmalia posted a topic in General HelpHello. 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