Recent

Author Topic: ApplyUpdates over Internet  (Read 902 times)

egsuh

  • Hero Member
  • *****
  • Posts: 1296
ApplyUpdates over Internet
« on: December 27, 2020, 05:04:31 am »
Is there any way to do this? I'm using Firebird. It may be possible to connect to a Firebird database over HTTP directly (I think this is possible), but opening a database on the Internet does not seem a good idea.

I guess that ApplyUpdates operate through several SQL statements based on key --- delete, insert or update. Isn't it possible that I save the SQL statements as a script text, pack and send them to web server using Synapse, and then webserver run the script?

Without ApplyUpdates, implementing this kind of briefcase model is not a big deal once there is a autoincrement key field. I only have to delete the server db record first before I delete local record. Other records can be updated with "update or insert" statement, with null key field(s) is insertions.  But if I can override ApplyUpdates, it will be more consistent with the spirit of OOP.

lainz

  • Hero Member
  • *****
  • Posts: 4473
    • https://lainz.github.io/
Re: ApplyUpdates over Internet
« Reply #1 on: December 27, 2020, 05:35:08 am »
Usually an intermediate application is created that connects to the database in the same server. You send the data with HTTP POST, then that application must convert it to the SQL you need.

delphi2pk

  • New Member
  • *
  • Posts: 10
Re: ApplyUpdates over Internet
« Reply #2 on: December 28, 2020, 10:12:27 am »
You can use REST Dataware components.

zgabrovski

  • New Member
  • *
  • Posts: 33
Re: ApplyUpdates over Internet
« Reply #3 on: January 09, 2021, 04:40:36 pm »
I did exactly what toy want over the internet with a small additional development:
-Before call "Apply updates" just save changes in temporary BufDataaset;
-In a separate thread I "ping" remote firebird server;
if the "Ping" is OK, just call Apply updates. If it fails, I display a reconnect form. After connection restore, I move the changes to the query from temporary dataset.

 

TinyPortal © 2005-2018