[Pas2js] Post in TSQLDBRestDataset

Gabriele Cappelletto cappelletto at inwind.it
Tue Apr 13 12:14:31 CEST 2021


#0 fpc_raiseexception at :0
#1 FPJSON$_$TJSONDATA_$__$$_DOERROR$ANSISTRING$array_of_const at :0
#2 
FPJSON$_$TJSONOBJECT_$__$$_DOADD$UTF8STRING$TJSONDATA$BOOLEAN$$LONGINT 
at :0
#3 .Ld6$strlab at :0
#4 ?? at :0
#5 ?? at :0
#6 .Ld6$strlab at :0
#7 ?? at :0
#8 ?? at :0
#9 ?? at :0

I don't know or am I doing something wrong, the instructions to modify are:

   FData.FieldByName('iso').ProviderFlags:=[pfInkey,pfInUpdate];
   FData.First;
   FData.Edit;
   FData.FieldByName('NAME').AsString:='romp';
   FData.Post;
   FData.ApplyUpdates;


Il 13/04/21 12:06, Michael Van Canneyt ha scritto:
>
> Strange...
>
> Can you please provide a server stacktrace ? Because without that, 
> there is little I can do to analyse the problem.
>
> Michael.
>
> On Tue, 13 Apr 2021, Gabriele Cappelletto via Pas2js wrote:
>
>>
>> I made a few attempts, inserting a new record works, but editing and 
>> deleting give this result on the server:
>>
>>
>> Exception 'EJSON'
>>
>> Duplicate object member: "error"
>>
>>
>> Il 12/04/21 21:29, Michael Van Canneyt ha scritto:
>>
>>
>>       On Mon, 12 Apr 2021, Gabriele Cappelletto via Pas2js wrote:
>>
>>             The test table is this:
>>
>>             CREATE TABLE COUNTRY
>>             (
>>               ISO char(2) NOT NULL,
>>               NAME varchar(80) NOT NULL,
>>               NICENAME varchar(80) NOT NULL,
>>               ISO3 char(3) DEFAULT NULL,
>>               NUMCODE smallint,
>>               PHONECODE smallint NOT NULL,
>>               CONSTRAINT COUNTRY_PKEY PRIMARY KEY (ISO)
>>             );
>>
>>             The database is firebird 2.5
>>
>>             In the server I wrote:
>>
>> FDisp.ExposeDatabase(TIBConnectionDef.TypeName,'localhost','/var/tmpGabry/testrest.fdb','SYSDBA','masterkey',Nil,
>> [foFilter,foInInsert,foInUpdate,foOrderByDesc]);
>>
>>
>>             but it gives me the problem listed below. So then I wrote
>>
>>
>> FDisp.ExposeDatabase(TIBConnectionDef.TypeName,'localhost','/var/tmpGabry/testrest.fdb','SYSDBA','masterkey',Nil,
>> [foFilter,foInInsert,foInUpdate,foOrderByDesc]);
>>
>>                 With FDisp.Schemas[0].Schema.Resources do
>>                   begin
>> FindResourceByName('country').Fields.FindByFieldName('ISO').Options:=[foInKey,foInInsert,
>> foInUpdate,foRequired,foFilter,foOrderBy,foOrderByDesc];
>>                     end;
>>
>>
>>       That should be enough. The foInKey tells the server to use the 
>> field ISO as
>>       the primary key.
>>
>>       Together with the client-side
>>       FieldByname('ISO').ProviderFlags:=[pfInkey,pfInUpdate];
>>
>>       It should work. (you obviously need both)
>>
>>       A mechanism to set the client-side field properties based on 
>> server-side
>>       metadadata (all data is available, after all) is still on my 
>> todo list...
>>
>>       Michael.
>>
>> _______________________________________________
>> Pas2js maillist  -  Pas2js at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js
>>
>>
>>


More information about the Pas2js mailing list