Forum Replies Created
-
AuthorPosts
-
zoran
ParticipantNo. I reverted to 5.16. This is in D 10.4.2. When I have the time I’ll try it in D 11 (which I’m not using yet – waiting for the next 1-2 patches)
zoran
ParticipantHello Everyone
Found the solution. It’s a simple TDictionary list of RequestIds and callback procedures. Upon return from query/service in kbmMWTCPIPIndyMessagingClientTransport1AsyncResponse event I check RequestId against this list and, if found, execute corresponding callback procedure.
If any of the fellow kbmMW-ers is interested I can send a complete demo source. I’m using D 10.3.3, FireDAC and Firebird 3.0.7.
Again, this is a simple solution to setup GUI before time consuming kbmMW operations, do some other work while it is running, and clean up GUI upon return. Maybe not elegant as it might be, but it does the job for me.
I’ve tried to do the same thing with
Scheduler.Run(
procedure
begin
…run query or service …
end)
.SynchronizedAfterRun(
procedure
begin
… process the resut …
Memo1.Lines.Add(res);
end)
.Activate(true);but was successful only with queries, not with service calls. Perhaps I was doing something wrong.
Regards
Zoranzoran
ParticipantLooks like 79100 has some problems. I had to revert back to older versions of kbmMemtable and kbmMW (post FindKey problem below).
Unfortunately Kim doesn’t have enough time to visit this forum 🙁
Zoran
zoran
ParticipantIn debugger after
mt.IndexFieldNames:= ‘Age’;
mt.IndexName := ‘ix_Age’;both fields are still empty (?).
zoran
ParticipantScheduler.Run(procedure(const AScheduledEvent:IkbmMWScheduledEvent)
begin
v := DM.kbmMWPooledSimpleClient1.Request(‘SVC_Common’, ‘1.0’, ‘GetLookupTable’, [‘all’]);
AScheduledEvent.Data := v;
end
)
.SynchronizedAfterRun(
procedure(const AScheduledEvent:IkbmMWScheduledEvent)
begin
RefreshLookupAll_LoadTables(AScheduledEvent.Data);
end
)
.Activate(True);Doesn’t work either… 🙁
zoran
ParticipantForget it.
It’s Delphi’s handling of Timestamp column. Both server and client use regional (local) FormatSettings to process Timestamp column, so different regions cause this error.
zoran
ParticipantAfter some more testing I found out that PrepareForData can be replaced with qry.Open.
Some accents are lost with this code:
qry.Close;
//qry.Open;
qry.AllData := v;
but if I uncomment the second line, all works fine.
zoran
ParticipantHi Kim
In my client I had:
qry.AllData := v;
When I add in front of it
kbmMWBinaryStreamFormat1.PrepareForData(False, False);
all works fine.
Thank you.
December 16, 2019 at 00:42 in reply to: kbmMWTCPIPIndyMessagingClientTransport1.SendMessage problem? #54361zoran
ParticipantNever mind.
If I define arrId: variant and do
arrId := VarArrayCreate([0,0], varVariant);
and then populate it with my int64 values, all works fine…
I’m puzzled why it also works when arrId: TArray<integer> and not when arrId: TArray<int64>?
Sorry for the false alert…
zoran
ParticipantHi Kim
I know you’re busy. Could you answer the question above, please?
Thanks.
Zoran
zoran
ParticipantThanks Kim, it worked.
Another short question. In my test server I put kbmMWTCPServerTransport and it works fine with client which has kbmMWTCPIPIndyClientTransport. However If I replace client Indy transport with kbmMWTCPClientTransport (and re-connect the properties), client cannot connect to the server. I’ve tried changing different properties but it still cannot connect.
Aren’t kbmMWTCPServerTransport and kbmMWTCPClientTransport meant to work together?
Thank you.
Zoran
zoran
ParticipantPS. This happens only when ‘kbmMW memory debug/leak checking’ option is set during installation.
-
AuthorPosts
