Recent

Author Topic: Teowin Client-Server/TDataset/SQL database  (Read 7016 times)

teos

  • Full Member
  • ***
  • Posts: 161
Teowin Client-Server/TDataset/SQL database
« on: January 18, 2013, 12:40:35 pm »
I have written a few times on a client-server database for Lazarus with both client and server in Pascal.

After a lot of work, it feels like an honour to announce that I have developed a full client-server database with support for Lazarus, based on TDataset but also on TeowinDatabase which is record based. The database supports single user, network user, client-server, encryption, user access and a subset of SQL.

When used in Client-server mode, the client can work both connected and disconnected, since it supports offline modifications.
Clients and Servers can be exchanged between Lazarus and Delphi (7-XE2) and both Windows and Linux.

TeowinDatabase is the database engine which can connect to a local database file, TeowinClient connects to a TeowinServer. TeowinDataset connects either to a TeowinDatabase or to a TeowinClient.

TeowinDataset is derived directly from TDataset, which makes it compatible with Delphi.

Network communication is done with Indy 10 (at least for now).

Current state of development:
- Need to write a database management tool and some testing examples.
- Need to find a way to get runtime even assignment working (in the package source with @,
  in a project without), seems I missed something there.
- Write a page explaining how a Teowindataset can be connected to a local database and to the Teowin client which takes care of communication with the server.

I have tested:
1. Use of a database generated in Delphi 2007 in Delphi XE and Lazarus on Windows and Linux.
2. Connect a Delphi 2007 client to a server compiled in XE (unicode/non unicode).
3. Connect a Lazarus Client to a Delphi server (on Windows and Linux).

The final product will be commercial, not clear of exact conditions.
For those who followed my threads about native client-server databases: I'm looking for volunteers to test my effords ;-)

« Last Edit: April 04, 2013, 11:51:19 pm by teos »

eldonfsr

  • Hero Member
  • *****
  • Posts: 605
Re: Teowin Client-Server/TDataset/SQL database
« Reply #1 on: April 03, 2013, 05:44:00 am »
if you wanna, I  interest in participate with your project just let me know how?


teos

  • Full Member
  • ***
  • Posts: 161
Re: Teowin Client-Server/TDataset/SQL database
« Reply #2 on: April 04, 2013, 05:02:54 pm »
if you wanna, I  interest in participate with your project just let me know how?

do you mean particpate as in test it and give comments or participate as in help to program?

I wanted to see if Lazarus/FPC community would be interested in a platform independant client AND server and by the number of responses, it looks like everyone is either looking for the finished product or does not need platform independance (can't imagine) without additional DLL's or libs.

I have not worked on the project for the last weeks. For testing I need to investigate how to create a binary distribution. For programming.. well I don't wanna hand out the source files..

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: Teowin Client-Server/TDataset/SQL database
« Reply #3 on: April 04, 2013, 05:32:03 pm »
I don't know why you keep going on about platform independence. Most db clients are platform independent (sqlite, Firebird, PostgreSQL..)
Yes they need dlls/dylibs/sos. It's probably not a problem to most of us.
If it is, you can compile in the libs statically (I think there's a thread on sqlite on the forum).

I myself am indeed not looking for the finished product if it's closed source/commercial. If it's open source, I might have a look at it to see if it's better than existing dbs.

Re binary distribution: IIRC, the wiki page on packages (PPUs) describes that.
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12980
  • FPC developer.
Re: Teowin Client-Server/TDataset/SQL database
« Reply #4 on: April 04, 2013, 08:58:02 pm »
I don't know why you keep going on about platform independence. Most db clients are platform independent (sqlite, Firebird, PostgreSQL..)
Yes they need dlls/dylibs/sos. It's probably not a problem to most of us.

Quote
If it is, you can compile in the libs statically (I think there's a thread on sqlite on the forum).

I myself am indeed not looking for the finished product if it's closed source/commercial. If it's open source, I might have a look at it to see if it's better than existing dbs.

Re binary distribution: IIRC, the wiki page on packages (PPUs) describes that.

Strange how everybody reads this stuff in his own context. I got mainly 3-Tier solution from this. (IOW the protocol between client and application server is not backend dependent)

In  that sense, it is more something like kbmmw(1) than e.g. sqldb or Zeos.

(1) http://www.components4programmers.com/products/kbmmw/

teos

  • Full Member
  • ***
  • Posts: 161
Re: Teowin Client-Server/TDataset/SQL database
« Reply #5 on: April 04, 2013, 11:50:36 pm »
@Marco: I tried to describe a client-server database, like ElevateDB in Delphi or like Accuracer.

@BigChimp:
I mentioned platform independance because I thought it would give some extra over others which (if porting would succeed) would only run on Windows. So from promotional perspective.

What I tried to describe was a client-server database which runs independent of the platform because the code runs on at least Linux and Windows. The idea I had in mind was only a sales argument.

And along with that, I tried to explain that having client and server code would make it possible to extend the server and client. I had pascalscript in mind for that. Or FsScript from FastReport for that matter.

But it seems that I have managed quite well to write something about my work that can be read in different ways. The code is client-server (2 tier) not ment to be middleware but some parts will look like it is.

If I express properly what I mean, the only thing that I am doing is writing about a small client and server that can be used instead of. Not better than others but different from others.

What I try to describe looks like ElevateDB for Delphi.

I know that I have to be very carefull with the words I choose or the text that I write. But whatever I say, it's not meant to be offending or a "I know it better".
« Last Edit: April 04, 2013, 11:58:11 pm by teos »

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: Teowin Client-Server/TDataset/SQL database
« Reply #6 on: April 05, 2013, 07:37:01 am »
@teos, thanks for the explanation. I'm fine with the way you write things, actually.

It's just that I think your multiplatform advantage argument is invalid (see above) *except* for the part about dlls/dylibs/sos, where of course you do have a point.
Example: as of now, I can run a Firebird application unchanged just as happily on Windows as on Linux...
I just don't see the dll issue as a big thing and suspect many others won't either.

Having an expandable Object Pascal client/server db sounds ok - perhaps you could use FreePascal plugin modules as well (such as UDF/user defined functions can be used in Firebird).
This would allow an all-Pascal solution without showing the source code ;)
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

 

TinyPortal © 2005-2018