![]() |
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. |
AW: Wer kennt noch FSSQL?
Flashfiler lebt in einem Projekt auf Sourceforge weiter, dfas letzte Update ist aber auch schon ein Jahr her
![]() |
AW: Wer kennt noch FSSQL?
Zitat:
(Die letzte Version ist von 2003, die Projektseite wurde vor einem Jahr zuletzt angefasst) |
AW: Wer kennt noch FSSQL?
Zitat:
|
AW: Wer kennt noch FSSQL?
Schade. Das hilft dann leider nicht weiter. Weiß vielleicht noch jemand etwas anderes?
Schönen Nachmittag Franz |
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:
|
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 |
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 |
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 |
AW: Wer kennt noch FSSQL?
Man glaubt es kaum, aber letztendlich hab ich doch noch etwas im Web gefunden. Dies hier:
![]() 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:
In fssql dagegen so:
procedure AddField(const aIdent : TffDictItemName;
const aDesc : TffDictItemDesc; aType : TffFieldType; aUnits : Integer; aDecPl : Integer; aReqFld : Boolean; const aValCheck : PffVCheckDescriptor);
Delphi-Quellcode:
Damit, denke ich, komme ich nun weiter, denn Feldänderungen sollten entsprechend funktionieren, da das Anlegen eines passenden Dictionarys nun endlich funktioniert.
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); 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 16:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz