Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wer kennt noch FSSQL? (https://www.delphipraxis.net/178688-wer-kennt-noch-fssql.html)

panch 21. Jan 2014 14:44

Datenbank: FSSQL • Version: 1100 • Zugriff über: Delphi

Wer kennt noch FSSQL?
 
Hallo allerseits,

von einem leider verstorbenen ehemaligen Kollgen habe ich ein Delphi-5-Projekt übernommen, das mit FSSQL*-Komponenten und den entsprechenden Tabellen arbeitet. Eine meiner Aufgaben besteht nun darin, eine Tabelle um zwei neue Felder zu ergänzen und Typ bzw. Länge einiger Felder in einer weiteren Tabelle zu ändern (beispielsweise ShortString zu Memo oder ShortString 120 zu ShortString 250).

Die Definition der Tabellen und Records habe ich inzwischen entdeckt, mir ist aber nicht klar, wie ich nun am besten eingreife, um die erforderlichen Strukturänderung der bestehenden Datenbanktabellen durchzuführen, und welche SQL-Befehle bzw. Argumente für die Ausführung der Änderungen via FSSQL abzuschicken sind. Kann mir da jemand mit dem einen oder anderen Tip weiterhelfen? Das wäre toll, denn dummerweise gibt's zu FSSQL so gut wie überhaupt keine Informationen mehr in den Weiten des Webs.

Vielen Dank vorab
Franz

* die freie Weiterentwicklung von FlashFiler aus dem Hause Turbo Power, die, wie es ausschaut, um 2006 herum ebenfalls eingestellt wurde.

mkinzler 21. Jan 2014 17:40

AW: Wer kennt noch FSSQL?
 
Flashfiler lebt in einem Projekt auf Sourceforge weiter, dfas letzte Update ist aber auch schon ein Jahr her

http://sourceforge.net/projects/tpflashfiler/

Sir Rufo 21. Jan 2014 20:28

AW: Wer kennt noch FSSQL?
 
Zitat:

Zitat von mkinzler (Beitrag 1244767)
Flashfiler lebt in einem Projekt auf Sourceforge weiter, dfas letzte Update ist aber auch schon ein Jahr her

http://sourceforge.net/projects/tpflashfiler/

Ich hätte jetzt spontan 10,5 Jahre gesagt, oder habe ich was übersehen?
(Die letzte Version ist von 2003, die Projektseite wurde vor einem Jahr zuletzt angefasst)

Bernhard Geyer 21. Jan 2014 22:06

AW: Wer kennt noch FSSQL?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1244798)
Ich hätte jetzt spontan 10,5 Jahre gesagt, oder habe ich was übersehen?

Genau können wir übermorgen den 10jährige "Versterben" dieser Komponente gedenken.

panch 22. Jan 2014 13:13

AW: Wer kennt noch FSSQL?
 
Schade. Das hilft dann leider nicht weiter. Weiß vielleicht noch jemand etwas anderes?

Schönen Nachmittag
Franz

haentschman 22. Jan 2014 13:42

AW: Wer kennt noch FSSQL?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Leider kann ich dir nicht helfen. Könnte es eine Alternative sein das DBMS zu wechseln?
Zitat:

wie überhaupt keine Informationen mehr in den Weiten des Webs.
...siehe Anhang. Das komplette Handbuch incl. SQL

Texas 13. Feb 2014 21:20

AW: Wer kennt noch FSSQL?
 
ich würde es über SQL versuchen.

Wenn man auf die Daten über ADO zugreifen kann, dann müsste darüber auch die Struktur zu ändern sein.

ADOCommand oder ADOQuery
Commandtext bzw. SQL

ALTER TABLE TABLENAME MODIFY FIELDNAME VARCHAR(175);
oder
ALTER TABLE TABLENAME MODIFY FIELDNAME CHAR(175);
oder zum Anfügen
ALTER TABLE TABLENAME ADD FIELDNAME INTEGER; für Zahlenfeld

was für Feldtypen die DB unterstützt kann ich dir auch nicht sagen.
Der wird immer am Ende des SQL Befehles angegeben

evt. noch mit den Einstellungen bei executeoptionen rumtesten

viel Glück

Micha

noisy_master 14. Apr 2014 13:03

AW: Wer kennt noch FSSQL?
 
Hi,

der FSSQL ist ein Fork vom Flashfiler und formatmässig auch nicht zu diesem kompatibel.
Dennoch sind die Tools sehr ähnlich...Es gibt einen DatabaseExplorer(ich glaube unter samples)
Damit kann man sich an den DB Server hängen, die Tabellen ansehen und auch ändern.

Bei Bedarf kann ich dir das komplette FSSql Paket zuschicken(ich bastele gerade selber damit rum)
Bitte aber die Version angeben, da die soweit ich weiss untereinander auch nicht kompatibel sind!

Gruß
Dirk

panch 12. Mai 2014 15:39

AW: Wer kennt noch FSSQL?
 
Schönen Nachmittag allerseits,

erstmal vielen Dank für die Tips.

Ich komme erst jetzt wieder auf dieses Thema zurück, da ich mich leider eine Weile mit anderen Dingen beschäftigen mußte und daher an diesem Projekt nicht weiterarbeiten konnte. Inzwischen ist mir ein wenig klarer, wie das mit einer Umstrukturierung bei fssql bzw. FlashFiler funktioniert. Mit SQL-Statements geht jedenfalls gar nichts, denn weder Create table noch Alter sind definiert.

Einen Hinweis, wie man eine Tabelle aus einem eigenen Programm heraus umstrukturieren kann, liefert der Quellcode des mitgelieferten fsExplorer-Tools, mit dessen Hilfe man Tabellen erstellen und auch ändern kann (inklusive der Struktur). Wenn man sich noch die alten Quellen von FlashFiler samt Dokumentation (alte hlp-Datei) bescchafft und nach RestructureTable sucht findet man TffDatabase.RestructureTable bzw. bei fssql TFSDatabase.RestructureTable. Diese Methode ist der Schlüssel zu Strukturänderungen zur Laufzeit. Ich hab's zwar noch nicht ausprobiert, aber die Änderungen selber scheint man über die Erstellung eines Dictionary (TffDataDictionary bzw. TFSInfoDict) festzulegen, während man mit der RestructureTable-Methode die eigentliche Umstrukturierung (das Kopieren der Datensätze in die neue Struktur) durchführt. Das Beispiel in der hlp von FlashFiler scheint mir zum Verständnis recht hilfreich.

@noisy_master: Vielen Dank, Dirk, für dein Angebot. Für fssql habe ich das Paket source1109.zip gefunden, ich vermute auch, daß mein ehemaliger Kollege diese Version verwendet. Hinweise auf eine Version finde ich auf seinem Rechner zwar nicht, doch da die Quellen vorhanden sind, scheint mir das nicht so wesentlich. Viel spannender ist die Frage, ob bzw. mit wieviel Aufwand ich die Umstrukturierung nun umsetzen kann.

Viele Grüße
Franz

panch 14. Mai 2014 14:52

AW: Wer kennt noch FSSQL?
 
Man glaubt es kaum, aber letztendlich hab ich doch noch etwas im Web gefunden. Dies hier: How to add a field to a table (Beitrag von Peter Harris).

Einziges Problem: Die Struktur von TffDataDictionary (in FlashFiler) hat sich gändert. In fssql ist daraus TFSInfoDict geworden. Die AddField-Methode der Klasse TFSInfoDict hat nun nicht mehr sieben, sondern zwölf Argumente, die leider nirgendwo erläutert sind. Druch Ausprobieren bzw. Debuggen im fsExplorer kommt an dann aber drauf, um was es geht:

In FlashFiler schaut AddField so aus:
Delphi-Quellcode:
procedure AddField(const aIdent : TffDictItemName;
  const aDesc : TffDictItemDesc; aType : TffFieldType;
  aUnits : Integer; aDecPl : Integer; aReqFld : Boolean;
  const aValCheck : PffVCheckDescriptor);
In fssql dagegen so:

Delphi-Quellcode:
procedure AddField(const aIdent : TffDictItemName;
  const aDesc : TffDictItemDesc; aType : TfsFieldType;
  aUnits : Integer; aDecPl : Integer; aReqFld : Boolean;
  const aValCheck : PffVCheckDescriptor
  aBlobLevelComp : TDataCompLevel; aDescriptopn : TffDictDescription;
  aRound: TRound; IsEmptyAsNull : Boolean; aDefaultUpdate : TDefaultUpdate);
Damit, denke ich, komme ich nun weiter, denn Feldänderungen sollten entsprechend funktionieren, da das Anlegen eines passenden Dictionarys nun endlich funktioniert.

Viele Grüße
Franz

P.S. Hilfreich finde außerdem einen Blick in die FlashFiler-Hilfe (hlp-Datei), insbesondere auf das Code-Beispiel unter TffDatabase.RestructureTable (siehe auch die Check-Abschnitte).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz