Lazarus

Programming => Packages and Libraries => Ported from Delphi/Kylix => Topic started by: SunyD on November 18, 2016, 02:24:17 am

Title: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on November 18, 2016, 02:24:17 am
Wikipage: http://wiki.freepascal.org/FlashFiler (http://wiki.freepascal.org/FlashFiler)
For download link  look for the current version section in wiki page.
I will publish every new download links there and make here new announce entry.
----

Original message:

Hello guys,
here is TurboPower FlashFiler for Lazarus. It is not complete. All  parts compile but only client-components are working without errors. Servercomponents has errors.
(caused by variant-strings).
You have to use original server compiled with delphi.


Sorry guys, i wanted it publish earlier but i forget it and I wanted also publish completed. Someone from here wrote me today so I publish it now.
I tested only with Windows.

Also look this thread:
http://forum.lazarus.freepascal.org/index.php/topic,29786.0.html (http://forum.lazarus.freepascal.org/index.php/topic,29786.0.html)

Download:
You must still download original from Sourceforge and merge both:
https://sourceforge.net/projects/tpflashfiler/files/tpflashfiler/2.13/ (https://sourceforge.net/projects/tpflashfiler/files/tpflashfiler/2.13/)

Here is my lazarus-port:
https://1drv.ms/u/s!AvJGv-C_3b-WgQMD-ogFIVkgTF8e (https://1drv.ms/u/s!AvJGv-C_3b-WgQMD-ogFIVkgTF8e)

Zipfile Contains readme-files, lazarus-package and source.


Edit: New Zip-File with all files:
https://1drv.ms/u/s!AvJGv-C_3b-WgQT63o0GHCCdYksJ (https://1drv.ms/u/s!AvJGv-C_3b-WgQT63o0GHCCdYksJ)
Title: Has anyone solved server error?
Post by: SunyD on December 07, 2016, 07:53:40 am
Has anyone solved server error?
Please can one put this component to Lazarus-CCR?

I put copy of EmbeddedServer-example as runtime version. Maybe it's better to debug.
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: wp on December 07, 2016, 02:47:05 pm
The files now are uploaded to ccr (components/flashfiler). As I noticed the library is not yet working (at least all demos are crashing). Soner A., I hope that you contribute to fix the issues (I myself do not plan to fully dedicate to this project). If this project would seem to be abondoned like many of the other ccr projects I'd take the freedom to remove it again.
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: SunyD on December 10, 2016, 12:52:10 pm
The files now are uploaded to ccr (components/flashfiler). As I noticed the library is not yet working (at least all demos are crashing). Soner A., I hope that you contribute to fix the issues (I myself do not plan to fully dedicate to this project). If this project would seem to be abondoned like many of the other ccr projects I'd take the freedom to remove it again.

You need the server-binaries from sourceforge, but forget it. I made better package with all neccessary files and better readme-text with instructions to use the package. Maybe the readme can be used for wiki page.

Sorry guys,  the server components still don't work. There is stream error caused in fflldict.pas-file in procedure TffDataDictionary.ReadFromStream(S : TStream); (Look readme.txt for more information)
I could not resolve it, it is pascal stream error, maybe someone more skilled with fpc can solve it.
This is real good database software, better then sqlite and fast as firebird, all in pascal.


Here is the dowload link for all files (except help files and delphi package files):
https://1drv.ms/u/s!AvJGv-C_3b-WgQT63o0GHCCdYksJ (https://1drv.ms/u/s!AvJGv-C_3b-WgQT63o0GHCCdYksJ)

Edit:
I made wiki page for this.
http://wiki.freepascal.org/FlashFiler (http://wiki.freepascal.org/FlashFiler)
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: wp on December 10, 2016, 01:19:49 pm
Hmm... I don't think that sourceforge should not be the home of server binaries. Wouldn't it be better to clearly state in the readme and the wiki that the ccr site does not contain them, and they *MUST* be downloaded before using the ff2 lib. We even can prepare an empty folder for them with another note reminding the users to download the binaries. The situation is similar to what DonAlfredo did with mORMot and tvplanit (http://forum.lazarus.freepascal.org/index.php/topic,33748.msg220583.html#msg220583).

Beyond the server binaries in flashfiler/bin and the readme, are the files identical with the current version on ccr? Once a file base has established you should upload only patch files which make it much easier for me to keep track of the changes.
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: SunyD on December 10, 2016, 01:28:19 pm
Yes only the readme and server binaries are new.
We can make empty binary folder with dowload link file to binary files on source forge. (https://sourceforge.net/projects/tpflashfiler/files/tpflashfiler/2.13/tpflashfiler_bin.zip/download)

Binary files are only needed until we get the server components working.
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: wp on December 10, 2016, 01:57:52 pm
Done (with minor reformatting of readme).

In the readme you write
Quote
Client components are Working.
Does this mean that these Delphi-precompiled server files are needed for testing? Which demo projects could be used for testing?
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: SunyD on December 10, 2016, 02:08:22 pm
All Examples except LazEmbeddedServer and LazEmbeddedServer-RT.
Without server components we need precompiled server program. You must first start server programm then the examples.
I wrote it in wiki http://wiki.freepascal.org/FlashFiler (http://wiki.freepascal.org/FlashFiler)
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: BrunoK on December 11, 2016, 06:39:33 pm
I tried to convert FF2 and was partially successful but met with the following difficulty regarding (IN FPC 2.6.4) the pred(SomeWordVar) that is not evaluated the same in DELPHI  and FPC 2.6.4.
The following program illustrates the problem
Code: Pascal  [Select][+][-]
  1. program project_pred;
  2.  
  3. { Same program for BDS2006 and FPC 2.6.4}
  4. {$ifdef FPC}
  5. {$mode DELPHI}
  6. {$else}
  7. {$APPTYPE CONSOLE}
  8. {$endif FPC}
  9.  
  10. var
  11.   ix: integer;
  12.   // ixEnd: CARDINAL; // <-Ok
  13.   ixEnd: word; // <-unsigned causing some trouble in for...loops
  14. begin
  15.   ixEnd := 0;
  16.   writeln('Pred(ixEnd)=',Pred(ixEnd));  // FPC 2.6.4=65535<>BDS2006=-1
  17.   writeln('for ix:=0 to Pred(ixEnd) do ...');
  18.   for ix := 0 to Pred(ixEnd) do begin // Delphi wont enter for...loop but FPC will
  19.     writeln(ix);                    // loop to 65535
  20.     if ix > ixEnd then              // avoid too many iteration
  21.       break;
  22.   end;
  23.   writeln;
  24.   writeln('for ix:=0 to ixEnd-1 do ...');
  25.   for ix := 0 to ixEnd - 1 do begin // <-- probably FPC casts ixEnd-1 to an Integer
  26.     writeln(ix);                //     prior to testing the end loop condition
  27.     if ix > ixEnd then
  28.       break;
  29.   end;
  30.   writeln;
  31.   writeln('Finished, hit enter');
  32.   readln;
  33. end.
  34.  
Output for FPC and DBS2006 :
Quote
FPC 2.6.4
Pred(ixEnd)=65535
for ix:=0 to Pred(ixEnd) do ...
0
1

for ix:=0 to ixEnd-1 do ...

Finished, hit enter
Quote
BDS 2006
Pred(ixEnd)=-1
for ix:=0 to Pred(ixEnd) do ...

for ix:=0 to ixEnd-1 do ...

Finished, hit enter
What are your results for that simple program and what version of FPC do you use ?

This has influence on iterations on many arrays in FlashFiler where indexes overflows, for example in
procedure TffDataDictionary.BindIndexHelpers;
IndexCount is a Word and if it is equal to 0 you'll have an overflow. In some other cases, the WORD variable is assigned to a local integer prior to for loops, thus not showing this behavior.

If of any use I join my FF2_FPC.lrs file with the glyphs for the Lazarus 1.4.4 component pallette.

I found also (in DELPHI/FastMM4) that there are memory leaks when executing  SQL from a client, some FF2 objects being not freed. Probably that would be solvable.


Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: SunyD on December 17, 2016, 09:40:38 am
1) I converted it, why reinvent the wheel?
There is some problems with TffServerEngine, maybe you can help to solve it.

2)I know about this problem.
For all integers delphi returns for:
Pred(0)=-1
and fpc return for signed integers:
Pred(0)=-1
and for unsigned integers:
Pred(0)=High of Integer type.

You have to fix it manually. i.e.:
Code: Pascal  [Select][+][-]
  1. var
  2.   ix: integer;
  3.   ixEnd: word;
  4. begin
  5.   ixEnd := 0;
  6.   for ix := 0 to Pred(ixEnd) do begin // Delphi wont enter for...loop but FPC will
  7.        // Because for Delphi: Pred(ixEnd)=-1 and for fpc Pred(ixEnd)=65535
  8.        // solution: change Pred(ixEnd) to (ixEnd-1)
  9.   end;
  10.  end;
  11.  
Title: Re: Turbo Power Flashfiler Lazarus Port (not complete)
Post by: SunyD on December 17, 2016, 09:48:25 am
...
This has influence on iterations on many arrays in FlashFiler where indexes overflows, for example in
procedure TffDataDictionary.BindIndexHelpers;
IndexCount is a Word and if it is equal to 0 you'll have an overflow. In some other cases, the WORD variable is assigned to a local integer prior to for loops, thus not showing this behavior.

If of any use I join my FF2_FPC.lrs file with the glyphs for the Lazarus 1.4.4 component pallette.

I found also (in DELPHI/FastMM4) that there are memory leaks when executing  SQL from a client, some FF2 objects being not freed. Probably that would be solvable.
IndexCount and other variables from procedure TffDataDictionary.BindIndexHelpers;  is integer, have you old version?
Where is fastmm4 used in flashfiler?
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on March 12, 2017, 05:49:09 pm
Yesterday and today I worked on server component now it is working.
"Now, it can be used only with Lazarus for client/server and embedded database server applications."
It has still some work and tests.
The new version is not online, I must restructure the package and folder. I upload it in the next days/weeks.

I am thinking to drop this components, because it takes to much time and i use firebird for professional application.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 01:33:06 am
I published latest version with working server components.
Link ist on top of entry (http://forum.lazarus.freepascal.org/index.php/topic,34834.msg229248).
Read readme.txt files from zip-file.
I don't use and did never used this components this is my gift freepascal community from i took so much.
I made fast tests all components are working, but may contain bugs.
I put referenz server in examples.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Handoko on June 21, 2017, 08:06:52 am
Thank you for your efforts.

I do not build enterprise level programs, so TDbf is enough for me. But Turbo Power Flashfiler catched my attention. Unfortunately the information how it is compare to others is hard to found.

Can anyone please add Turbo Power Flashfiler into this wiki page?
http://wiki.freepascal.org/Databases#Supported_databases
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: kapibara on June 21, 2017, 08:39:45 am
@Soner: Thank  you for the contribution.

@Handoko Added it with the name 'TurboPower FlashFiler'. Supported platforms: Win32/Win64.

I could not install FlashFiler under Linux:
Quote
ffllbase.pas(50,3) Fatal: Cannot find Windows used by ffllbase.
..
ffllbase.pas(478,18) Error: Identifier not found "TWin32FindData"
ffllbase.pas(1962,48) Error: Identifier not found "TLargeInteger"
ffllbase.pas(1963,48) Error: Identifier not found "PLargeInteger"
ffllbase.pas(1964,48) Error: Identifier not found "Bool"
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Handoko on June 21, 2017, 09:05:58 am
I'm a Linux user. :'(
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: kapibara on June 21, 2017, 09:29:08 am
Maybe it is just a few types that need to be changed. Lets see what Soner says. :)
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: wp on June 21, 2017, 10:10:22 am
@Handoko Added it with the name 'TurboPower FlashFiler'. Supported platforms: Win32/Win64.
Added to what?
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Handoko on June 21, 2017, 10:16:36 am
The information how TurboPower FlashFiler compare to others in this wiki page:
http://wiki.freepascal.org/Databases#Supported_databases
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 12:11:23 pm
I can not port them to Linux, at least not now.
I don't now if this component is good, it is to much delphi centric.
I am thinking to create client server database component for SQLDb components. With only one new Connectiontype (like TSQLite3Connection or TIBConnection), we had client server  database components.  For this I want use SQLite.

@Handoko
Use Sqldb components. I think ist Sqldb more suitable for you and the new developers. Flashfiler is for people who developed database applications with delphi in the nineties.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: wp on June 21, 2017, 12:38:13 pm
Soner A., I cannot compile the designtime package on Windows (Laz trunk, fpc 3.02): "lazff2_dt.pas(10,3) Fatal: Cannot find ffabout used by lazff2_dt. Check search path of package lazff2_dt, try a clean rebuild, check implementation uses sections.." This reminds me of the issues I had with tvplanit which ended up in putting runtime and designtime code units as well as compiled units into separate directories.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 12:59:55 pm
@wp
add the path "..\source" to OtherUnitFiles. I removed it to avoid of "douple path" warning from the compiler. I wanted move packages to source folder but forget it.
sorry, i upload it again.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: wp on June 21, 2017, 01:15:36 pm
No good solution. Now, trying to "install" the designtime package, during building of the IDE, I now get "ffllexcp.pas(40,3) Fatal: Cannot find ffsrmgr used by ffllexcp, incompatible ppu=D:\Prog_Lazarus\svn\lazarus-ccr\components\flashfiler\packages\lib\i386-win32\ffsrmgr.ppu, package lazff2". This happens usually when packages have access to the sources of other packages. I can't get rid of it even with a clean rebuild of the IDE.

I did try to separate run and designtime units into their own folders, but failed because there are so many units, and I don't know which ones are real design units.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 01:22:13 pm
No good solution. Now, trying to "install" the designtime package, during building of the IDE, I now get "ffllexcp.pas(40,3) Fatal: Cannot find ffsrmgr used by ffllexcp, incompatible ppu=D:\Prog_Lazarus\svn\lazarus-ccr\components\flashfiler\packages\lib\i386-win32\ffsrmgr.ppu, package lazff2". This happens usually when packages have access to the sources of other packages. I can't get rid of it even with a clean rebuild of the IDE.

I did try to separate run and designtime units into their own folders, but failed because there are so many units, and I don't know which ones are real design units.
I moved the packages in the source folder and upload it .
I don't know why this compile error happens. Maybe wrong order of units. When this happens open the runtime package and compile firts runtime package and then designtime package again.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 01:31:58 pm
Also you can delete it from lazarus-ccr.
This component is not suited new user, because they can need some additional work and bugs.
I am the only one that tested this components.
The user can post his corrections and bug report here in this topic.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 01:56:04 pm
New download links with solved package error on wiki page.
Still windows only and tested only with windows 7, lazarus and fpc  32bit.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: wp on June 21, 2017, 02:20:31 pm
Strange. It does not install either. Am I the only one having this issue?

As requested I removed the flashfiler folder from ccr.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: SunyD on June 21, 2017, 02:30:06 pm
Strange. It does not install either. Am I the only one having this issue?

As requested I removed the flashfiler folder from ccr.
Still install error?
Make this:
1) compile runtime package
2) compile and select install designtime package
3) rebuild lazarus
It should rebuild lazarus without error.
When the "not found" error happens then open runtime package and reubild lazarus.
It works for me every time.
This error happens rare and often when you edit package or compenent files.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: wp on June 21, 2017, 02:40:57 pm
Yes, having the designtime package open and starting rebuilding Lazarus from its "Install" fixes it. Looks very fragile, though...
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 19, 2017, 09:44:10 pm
So has anyone been able to simply compile the ffdb.pas - I am in the process of making it work on Mac and Linux - however, a couple routines make me raise an eyebrow if I am guessing the correct replacement. (After getting it to work in FPC, I don't use Laz).

Ozz
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 19, 2017, 09:49:23 pm
Well, basically, Flash Filer is history, gone to meet its maker, pushing up daisies, it is an ex-filer..... (Free Monty Python)
Unless you have a very good reason, leave it alone.
(Although there is a working version somewhere in another thread)
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 20, 2017, 02:37:04 pm
I have to recompile it. I followed all of the other threads before downloading the pristine the "OneDrive" link is empty.

Since 99/2000 I have been running servers built in D5 and now D7, now I am trying to compile it using FPC 3 - and get rid of all the assembly in ffllbase to pure pascal. My goal is to port it to pure pascal so I can run it in my Linux servers and Mac servers. I am aware of other solutions, but, this is a needed task.

Thanks,
Ozz
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 20, 2017, 04:06:07 pm
It is already ported including server. Read this thread: http://forum.lazarus.freepascal.org/index.php/topic,34834.msg229248
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 22, 2017, 06:25:19 pm
Thanks - as stated:

This item might not exist or is no longer available
This item might have been deleted, expired, or you might not have permission to view it. Contact the owner of this item for more information.

Every link that supposedly has source in this thread - all link to OneDrive, and report the above. I would love to save the time I am spending to migrate it to Linux if someone else has already done so.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: taazz on December 22, 2017, 06:47:52 pm
Thanks - as stated:

This item might not exist or is no longer available
This item might have been deleted, expired, or you might not have permission to view it. Contact the owner of this item for more information.

Every link that supposedly has source in this thread - all link to OneDrive, and report the above. I would love to save the time I am spending to migrate it to Linux if someone else has already done so.
https://onedrive.live.com/?authkey=%21AFDr0v7myFuatlg&cid=1CF6E5B11FE74543&id=1CF6E5B11FE74543%21108&parId=root&action=locate
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 22, 2017, 08:16:42 pm
Tnx Taaz.
If he wants to use it he can use it.
But he should convert ASAP to mainstream.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 22, 2017, 09:05:40 pm
Thanks Taazz!

Downloaded - running diffs and recompiling :-)
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 22, 2017, 09:25:32 pm
If he wants to use it he can use it.
But he should convert ASAP to mainstream.

Why do you feel that FF 2 was not mainstream enough? I know it's been stale for a decade, however, it worked then and works now. Nexxus supposedly used the code and made a business out of the engine. The project I am working on, is coming from fixed record length flat files - I was going to port to Foxpro DBF/CDX when I stumbled across someone mentioning why not FlashFiler in my blogs. (I have another commercial suite that is running against FF 2.1 flawlessly since 1998/99 to now. With over 50 concurrent users 5 to 6 days a week -- it's a CRM I designed to mimic ACT! - and to this date FF has never given me a problem - it supports most of SQL-92, and for this new project, that is more than I need.

Thanks!
Ozz
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: ozznixon on December 22, 2017, 10:36:21 pm
Downloaded (thanks) - it is still only WINDOWS compliant code... so I will compare for any differences to my Linux build and resume.

Thanks!
O.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: taazz on December 23, 2017, 02:30:20 am
If he wants to use it he can use it.
But he should convert ASAP to mainstream.

Why do you feel that FF 2 was not mainstream enough? I know it's been stale for a decade, however, it worked then and works now. Nexxus supposedly used the code and made a business out of the engine.
Nexus used the team not the code.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 23, 2017, 08:17:24 am
If he wants to use it he can use it.
But he should convert ASAP to mainstream.

Why do you feel that FF 2 was not mainstream enough? I know it's been stale for a decade, however, it worked then and works now. Nexxus supposedly used the code and made a business out of the engine.
Nexus used the team not the code.

Indeed, Nexus has a completely different engine.
Aside: Paradox and dBase also still work, but are just as stale.
My current advise is to port everything to Sqlite for single user code (although with e.g. even mOrMot to multi-user) or use a modern maintained SQL database format that scales and is mainstream: MySQL, MariaDb, Progress, even Oracle.
Note that there is even a full pascal translation of Sqlite (commercial): https://www.yunqa.de/delphi/products/sqlite3/index This is not a binding, but full sourcecode in Object Pascal. In case you want everyting in Object Pascal.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: taazz on December 23, 2017, 08:38:46 am
Indeed, Nexus has a completely different engine.
Aside: Paradox and dBase also still work, but are just as stale.
paradox and dbase have no acceptable supported solution. BDE was the only compatitor to access back in the day
My current advise is to port everything to Sqlite for single user code (although with e.g. even mOrMot to multi-user) or use a modern maintained SQL database format that scales and is mainstream: MySQL, MariaDb, Progress, even Oracle.
Personally I dislike sqlite. I prefer ff2 it is far more interesting with smaller file sizes it includes everything I need.
Note that there is even a full pascal translation of Sqlite (commercial): https://www.yunqa.de/delphi/products/sqlite3/index (https://www.yunqa.de/delphi/products/sqlite3/index) This is not a binding, but full sourcecode in Object Pascal. In case you want everyting in Object Pascal.
I thought that it had the sqlite c code linked in as obj not rewritten in object pascal.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 23, 2017, 09:17:33 am
Indeed, Nexus has a completely different engine.
Aside: Paradox and dBase also still work, but are just as stale.
paradox and dbase have no acceptable supported solution. BDE was the only compatitor to access back in the day
My current advise is to port everything to Sqlite for single user code (although with e.g. even mOrMot to multi-user) or use a modern maintained SQL database format that scales and is mainstream: MySQL, MariaDb, Progress, even Oracle.
Personally I dislike sqlite. I prefer ff2 it is far more interesting with smaller file sizes it includes everything I need.
Note that there is even a full pascal translation of Sqlite (commercial): https://www.yunqa.de/delphi/products/sqlite3/index (https://www.yunqa.de/delphi/products/sqlite3/index) This is not a binding, but full sourcecode in Object Pascal. In case you want everyting in Object Pascal.
I thought that it had the sqlite c code linked in as obj not rewritten in object pascal.
diSqlite is a full pascal translation of everything as far as I know.  Linking in the obj files - now file - is something I already did in 2000 so then the product would not interest me. It is interesting what he did, but he charges too much.
dBase - almost all versions, including foxpro - has very good and maintained support out of the box in FPC. Paradox is available too to some extend, unmaintained.
Sqlite format is lighter than FF afaik: it stores minimum content+ length information. FF stores fixed length. There is also a reason that *everybody* uses it as the preferred embedded data store: Apple, Microsoft, Google, you name them.

Anyway: FF is available for FreePascal. Client and recently also server. But it is also un-maintained and abandoned straight after finishing it by its author.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 23, 2017, 09:43:16 am
Note Pascal has also file of record and FPC has a good lightweight engine as standard: fpindexer. If you want really lightweight  :D :D :)
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: taazz on December 23, 2017, 10:04:16 am
Note Pascal has also file of record
file of record is not an acceptable solution either, to many missing parts, TurboPower B-Tree Filer is a far better solution if you want to go down the record route. If I could only find the port posted on the mail list a couple of years back. It did not survived my last disk crash.
FPC has a good lightweight engine as standard: fpindexer. If you want really lightweight  :D :D :)
You do know that fpindexer is a full text search engine and not a database, right?
DBase, paradox and the rest of the solutions are not acceptable either the existing components target the file format only, no sql, no network/locks and the index support is sketchy at best. FF2 has the complete package from compressed tables up to encrypted ones with sql support views, stored procedures etc. It is the best pascal database so far and if supported properly it will be far better than sqlite.
As for the popularity of SQLite the main reasons are 1) it is a c based embedded database 2) it is under the BSD license and 3) it has a small footprint. Those reasons makes it a good solution for storage limited devices (mobiles phones, tablets etc). it is not its technical superiority over (firebird for example) other databases that it was chosen.

Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: Thaddy on December 23, 2017, 12:47:10 pm
As for the popularity of SQLite the main reasons are 1) it is a c based embedded database 2) it is under the BSD license and 3) it has a small footprint. Those reasons makes it a good solution for storage limited devices (mobiles phones, tablets etc). it is not its technical superiority over (firebird for example) other databases that it was chosen.
It is not under any license.  see: https://sqlite.org/copyright.html  It is copyright protected, though. It is public domain in the strictest sense of public domain. (Which differs from free software, that includes licensed software)
Because of the copyright protection the only limitation is that you  can not claim to have written it.
It is technically superior to firebird. That's a fact, not an opinion. Although I hate firebird, for the record.
And fpindexer contains a full text search engine, but it is an indexer.

But feel free to use FF. I did so for years. In my opinion it is a bad idea to recommend it, though, for the reasons I mentioned before.
- Not mainstream
- Not maintained
- Can you access your data in 20 years time?
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: taazz on December 23, 2017, 01:24:18 pm
As for the popularity of SQLite the main reasons are 1) it is a c based embedded database 2) it is under the BSD license and 3) it has a small footprint. Those reasons makes it a good solution for storage limited devices (mobiles phones, tablets etc). it is not its technical superiority over (firebird for example) other databases that it was chosen.
It is not under any license.  see: https://sqlite.org/copyright.html (https://sqlite.org/copyright.html)  It is copyright protected, though. It is public domain in the strictest sense of public domain. (Which differs from free software, that includes licensed software)
Because of the copyright protection the only limitation is that you  can not claim to have written it.
Does not change the reasoning it only makes it even easier to use but you are right.

It is technically superior to firebird. That's a fact, not an opinion. Although I hate firebird, for the record.
Any proof to support your claim? Which feature are technically superior to firebird? As far as I know it has no concurrent access, limited SQL support (views become available the past year or two if I recall correctly), data types are non existent, they are considered requests not data types (try creating a field with data type thaddy and see for your self) numeric checks follow the string convention more than the numeric one and a number of other falsities which make it a bad choice for any mid to big data sized application.

And fpindexer contains a full text search engine, but it is an indexer.
A full text search engine is an indexer for text it does not make it a database the same way a index of a paradox table is not the database.
But feel free to use FF. I did so for years. In my opinion it is a bad idea to recommend it, though, for the reasons I mentioned before.
- Not mainstream
true then again very few database are mainstream and most of them you have no access to their code.
- Not maintained
Not yet. But its the only one that (if code properly) can go everywhere fpc goes with out the need a C/C++ compiler.
- Can you access your data in 20 years time?
well as long as I have the code the answer is yes. Can you say the same for Oracle? MSSQL? those are as mainstream as they come.
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: teos on March 08, 2020, 08:37:36 pm
I think that Thaddy was right afterall.. Can't find much information that is not at least 3 years old.

Apart from all the pointers and unreadable code, the conversion to Lazarus still looks like a one man action. A database engine is too important for an evening of quick fixes.

But I like the part where server and client are both coded in Pascal. So I looked at the files posted but to no surprise to me, Lazarus 2.0.6 and CodeTyphon 7.0 cannot install the packages:

I wonder if it really was needed to code this in assembly.

Code: Pascal  [Select][+][-]
  1. function HasTimerExpired(const T : TffTimer) : boolean;
  2. asm
  3.   push ebx
  4.   xor ebx, ebx
  5.   cmp [eax].TffTimer.trForEver, 0
  6.   jne @@Exit
  7.   push eax
  8.   call GetTickCount
  9.   pop edx
  10.   mov ecx, [edx].TffTimer.trExpire
  11.   mov edx, [edx].TffTimer.trStart
  12.   cmp edx, ecx
  13.   jbe @@StartLEExpire
  14. @@StartGEExpire:
  15.   cmp eax, edx
  16.   jae @@Exit
  17.   cmp eax, ecx
  18.   jae @@Expired
  19.   jmp @@Exit
  20. @@StartLEExpire:
  21.   cmp eax, ecx
  22.   jae @@Expired
  23.   cmp eax, edx
  24.   jae @@Exit
  25. @@Expired:
  26.   inc ebx
  27. @@Exit:
  28.   mov eax, ebx
  29.   pop ebx
  30. end;
Title: Re: Turbo Power Flashfiler Lazarus Port
Post by: zzsczz on August 17, 2022, 11:33:58 am
Thanks - as stated:

This item might not exist or is no longer available
This item might have been deleted, expired, or you might not have permission to view it. Contact the owner of this item for more information.

Every link that supposedly has source in this thread - all link to OneDrive, and report the above. I would love to save the time I am spending to migrate it to Linux if someone else has already done so.
https://onedrive.live.com/?authkey=%21AFDr0v7myFuatlg&cid=1CF6E5B11FE74543&id=1CF6E5B11FE74543%21108&parId=root&action=locate


i compile the source  by lazarus 2.2.2(fpc3.2.2) win32 version

project ffserver.lpi  is compiled  without error . but    ffserver.exe   cound not run. The result is in Attach


The FileCtrlExPkg.pkg is  missing when  ffe.lpi(in explorermy dir) is compiled.


TinyPortal © 2005-2018