![]() |
Interbase/Firebird
Hallo,
da Borland das Interbase Opensource Projekt nicht mehr fortführt und sich mit Interbase / Firebird die Geister scheiden, blicke ich jetzt nicht mehr ganz durch, was ich verwenden soll. Habe hier ein Sammelsurium verschiedener IBconsolen, Interbaseserver aller möglichen Versionen usw. Einmal heißt es die alte Version von irgendwas sei besser als die neue, irgendeine andere ist dafür angeblich zu lahm, eine andere stürzt ab usw. Bei den Delphi-Komponenten sieht es ähnlich aus. Hat irgendjemand in der Praxis ein lauffähiges nicht zu kleines Programm, der vielleicht einmal sagt, welche konstellation seiner Ansicht nach am besten ist ? Die Leistungsmerkmale werde ich wahrscheinlich fast alle einsetzen müssen. Es geht hier nicht um eine Adressverwaltung und nicht nur um Einzelplatz. Gruß hansa |
Hi,
es gibt zur Zeit 3 mir bekannte Zweige von Interbase: 1. die kommerzielle: Die steht zur Zeit auf der Version 6.5, die 7er ist angekündigt. Die kostet Geld, dafür gibts ne stabile Version, die auch mit einigen Neuerungen daherkommt. 2. die OpenSource: Die aktuelle Version ist 6.0.2, allerdings sei die 6.1.6 stabiler (kann ich nicht nachvollziehen). Diese Version wird nicht mehr weiterentwickelt. 3. Firebird: Die steht auf der Version 1.0 (Vergleichbar mit Interbase 6.0x), bietet allerdings ein paar neue Funktionen, SQL-Konstrukte und ist anscheinend stabiler und schneller als die 6er IB. Zur Zeit ist die 1.5 in Bearbeitung, in der irgendwasauchimmer gemacht werden soll, die 2er Version soll komplett in C++ erstellt werden (ist auch schon in Arbeit). Eigentlich ganz einfach, oder?? Der Hammer kommt erst jetzt: Der Zugriff. Leider werden die IBX (werden von einem Borlandmitarbeiter gemacht) nicht auf Firebird angepasst. Zur Zeit funktionieren die noch, aber spätestens wenn die IB 7 und FB 2 da sind, werde die ersten Probleme auftauchen. Leider gibt es außer den IBX keine wirklich kostenlosen Komponenten für Firebird. Mit IBObjects darf man zwar Freeware produzieren, es kommt aber immer ein Hinweis, bei den FIBPlus, die ziemlich schnell sind, ist es ähnlich. Für die Administration dürfte es keine so großen Probleme geben. Da die IBConsole auch auf den IBX aufbaut hat deren Stündlein sozusagen schon geschlagen. Aber seit ein paar Monaten gibt es den IBExpert Personal kostenlos zum runterziehen. Der bietet auch mehr Möglichkeiten als die IBConsole, versteckt aber mehr von der Datenbank vor dem Benutzer als die IBConsole und wird lt. Hersteller auch Firebird weiterhin unterstützen. Grüße Lemmy Links: IBObjects: ![]() FIBPlus: ![]() Firebird: ![]() IBExpert: ![]() Kostenlose Version: ![]() |
Hallo Lemmy,
Deine Antwort bestätigt eigentlich meine Ahnungen. Grundsätzlich gibt es ja zwei Möglichkeiten : man fährt auf der kostenlosen Schiene oder zahlt eben. Leider ist es aber zumindest bei Borland so eine Sache. Alles was sich nicht um reine Programmiersprachen handelt, wurde von denen irgendwann fallengelassen oder es war einfach Sch.... Ich erinnere mich noch dunkel an TurboVision und auch das, was sie mit Interbase jetzt machen ist nicht gerade dazu geeignet überhaupt damit anzufangen. Eigentlich müßten ja zuerst die kostenlosen Sachen verschwinden und nicht die, mit denen Geld verdient wird. Seltsamerweise scheint es aber umgekehrt zu sein. Die wollen offenbar auf einen Schlag soviel verdienen, daß es letzten Endes zu teuer wird. Dadurch verkaufen sie nichts und stellen das Projekt irgendwann ein. Bei denen, die von vorneherein wissen, daß es nicht viel gibt kann das logischerweise nicht passieren, hier besteht aber die Gefahr, daß sie irgendwann einfach keine Lust mehr haben, da die Motivation zu gering wird. Da auch ich noch gar nicht weiß, ob sich mein Projekt letztenendes auszahlt, will ich nicht unnötigerweise Geld rausschmeißen. Warum gibt es denn überhaupt Delphi? Weil irgendwann ein junger Finne Turbopascal geschrieben hat und es von einer amerikanischen Firma sogar in Deutschland für nur 198 DM verkauft wurde. Ich kenne niemanden, der damals ernsthaft mit einer Raubkopie gearbeitet hat. Aber egal, werde jetzt mal meine Komponentenleiste um einiges erleichtern, dann Firebird und den IBexpert runterladen (DSL sei dank) und neu installieren. Dann werde ich "Lemmy's Interbase Tutorium" noch einmal von vorne bis hinten durcharbeiten. @Lemmy : 1. geht das mit der Konstellation Firebird / IBexpert ? oder gibt es größere Probleme (habe mir Firebird noch nicht groß angeschaut)? 2. Bleibt aber noch die Frage, was mit IB Opensource ist ? Gruß Hansa P.S.: An alle, die wegen ähnlicher Problemchen auf eine andere Datenbank ausweichen wollen : Trotz oben gesagtem ist Vorsicht geboten bei kostenlosen Programmen! Habe mir mal den Advantage Server angeschaut. Die haben mich schon am nächsten Tag angerufen und gefragt, ob ich zurecht käme. Echt super. ABER : der angeblich bis 5 User kostenlose Server ist doch stark eingeschränkt. Bei ihm fehlen die Transactions !! |
Hi Hansa,
Zitat:
Zitat:
Zitat:
2. Dasselbe wie mit den IBX. Wenn auch nur die Chance besteht, dass Du Geld einnimmst, dann die FB/FIBPlus Variante nehmen. Zitat:
Grüße Lemmy |
Hallo Lemmy,
das war einmal eine glasklare Antwort und nicht nur unnötige Gegenfragen von Wichtigtuern. So habe ich das ganze im Prinzip auch eingeschätzt. Aber wer nicht fragt kriegt keine Antwort. Gruß Hansa |
Habe mir jetzt folgendes besorgt (Lemmy sei dank):
Firebird, IBexpert und FIBplus (jeweils neueste Version) Das sieht in dieser Konstellation recht gut aus. 1. Bei IBexpert fängt es an. Und zwar wollte ich die Datenbank mit bestehenden Daten füllen. Es gibt da die Funktion "Export data into Script". Um zu sehen wie das geht, habe ich von Hand 2 Datensätze editiert, dann die table gedropt. erzeugtes Script: create table "art" /* kleingeschriebene Schlüsselwörter sind von mir */ /* wie hier hinzugefügt */ INSERT INTO "art" ("bez","nr") VALUES ('test',100); INSERT INTO "art" ("bez","nr") VALUES ('test2',101); COMMIT WORK; Mit folgender Fehlermeldung kann ich nichts anfangen, sie kam auch in anderem Zusammenhang, immer hat er sich aber über SQL-Schlüsselwörter beschwert: Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 3, char 1. INSERT. 2. Kennt jemand FIBplus ? Die Demo läuft zwar einwandfrei, er compiliert auch ohne Fehler, leider habe ich aber nichts schriftliches und keine Online-Help. Zumindest habe ich nichts gefunden. Sehe die schöne bunte Komponentenleiste, aber entweder habe ich eine Komponente vergessen, oder eine Einstellung im OI übersehen. Also: welche Komponenten muß ich auf der Form platzieren und anpassen, damit ich über Delphi an die Daten rankomme? Die Connection zur Datenbank funktioniert, aber an die Felder komme ich irgendwie nicht dran. Es ist halt frustrierend, selbst wenn ich das 1. Problem gelöst und so die Datenbank "bestückt" hätte, würde ich es unter Delphi nicht einmal merken wegen des 2. Problems. Gruß Hansa |
Hi Hansa,
Zitat:
Zudem würde ich nicht das Skript komplett ablaufen lassen, sondern in 2 Stufen: erst die Tabelle erzeugen, im 2. Schritt dann mit Daten füllen... Zitat:
Grüße Lemmy |
Hallo Leute,
mit FIBplus komme ich jetzt an die Felder, aber einige Sachen finde ich nicht andere sind mir nicht ganz klar. Anscheinend muß man select * from 'table' von Hand eingeben, damit er die Felder findet.Stimmt das? 1. @Lemmy: (Generatoren) In Deinem Interbase Tutorial schreibst Du, man könne sie in dem DataSet bei Eigenschaft GeneratorField eintragen, die fehlt aber bei mir ! Auch die SQL's mußten von Hand ergänzt werden (hinter WHERE kam nichts mehr) Ist das normal? 2. Wo und wie ändert man die Reihenfolge der Felder? Habe ein Grid, da stehen die Felder genau verkehrt rum drin. 3. Wo kommt eigentlich die OLD_nr in den SQL-Statements her und wozu ist die überhaupt gut? 4. 'UPDATE "art" SET ' ' "preis" = ?"preis",' ' "bez" = ?"bez",' ' "nr" = ?"nr"' ' WHERE ' ' "nr" = ?"OLD_nr"' ' ') Das Mini-Programm läuft, aber mich stören obige "?". Sie scheinen keine Auswirkungen zu haben Das reicht jetzt vorerst, aber ahne was noch auftaucht. Mühsam ernährt sich das Eichhörnchen! :nerd: Gruß Hansa |
Hi Hansa,
Zitat:
Zitat:
Die Erzeugung der SQL's funktionierte bei mir immer einwandfrei. Hast Du ein Feld für den Primärindex ausgewählt?? Zitat:
Zitat:
Zitat:
Grüße Lemmy P.S.: Ich bin ab morgen für vermutlich 3 Wochen weg... |
Hallo Leute,
der gute Lemmy ist für 3 Wochen weg ! Sei ihm gegönnt ! Vielleicht weiß ja noch jemand etwas. Das meiste geht jetzt. Habe jetzt von Delphi aus Zugriff auf meine Daten, sie stehen auch im Grid oder den DBedit Feldern. War klar, daß es jetzt mit Generatoren und Triggern zur Sache geht. Habe deshalb einen Generator erzeugt: CREATE GENERATOR "GEN_art_ID"; Dann noch einen Tigger, der die ID für einen neuen Satz hochzählt: CREATE TRIGGER T_GENERATEID FOR "art" ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.ID = GEN_ID ("GEN_art_ID",1); end So weit so gut, aber wie kriege ich die Sortierung nach der Art.Nr. oder alphabetisch jetzt noch hin ?? Ich meine jetzt in Delphi. Soll ich eine SQL-Anweisung irgendwo als string ausführen lassen? Wo ist aber dann das Ergebnis, bzw. wie komme ich dran? :?: :?: :?: Was ich noch nicht verstehe: wieso muß ich in SQL manchmal "BEZEICHNER" benutzen und manchmal nicht? Gruß Hansa |
Hallo Hansa,
SQL gibt in der Regel keine sortierten Datensaetze zurueck. Die Klausel: ORDER BY in einer SELECT Abfrage stellt die Sortierung aber wie gewuenscht her. Du solltest deshalb eine TQuery nutzen und dort die Abfrage:
Code:
Die erhaltene Datenmenge kannst du weitgehend wie eine Tabelle benutzen, also z.B ueber eine DataSource mit einem Grid verbinden.
SELECT * FROM theTable ORDER BY ArtNr
|
Hallo MrSpock,
Danke für die Antwort. Ich sehe aber nicht, wie ich an die Ergebnismenge komme. In dem Grid kann ich doch nur die Datenbank angeben, bei der Query steht bei SQL: "select * from art". Er compiliert, aber im Grid steht nichts! Normalerweise müßten doch alle Felder irgendwo zu sehen sein. das klappt auch woanders, aber meine Query macht Ärger. Gruß Hansa |
Hallo Hansa,
hab leider keine Zeit mehr. Aber kurzer Hinweis. TDataSource benutzen, um die Verbindung zwischen deiner TQuery und der DBGrig Komponente herszustellen, wie bei einer TTable Kompo. Ich muss looooooooos..... |
SQL /DBlookupComboBox
Hallo allerseits,
worum es geht steht im Titel. Experimentiere halt. Habe hier eine Interbase - Datenbank. Trigger, Generatoren, Indices usw. sind angelegt. Testdaten auch. Jetzt will ich folgendes machen: Neue Artikel erfassen. Jedem Artikel soll im Eingabeformular eine Warengruppennr. zugeordnet werden. Die WG-Nr und Bez. stehen aber in der WG-Datei. Sagen wir mal es sind 20 WG's. Also können diese locker in einer Lookup-Combobox zur Hilfe und Auswahl automatisch bereitstehen. Alle möglichen Werte der Warengruppe eines Artikels sollen dort angezeigt und ausgewählt werden können. Aber die WG-Nr. und Bez. steht ja in der WGdatei. Die Artikel sollen aber über ihren Fremdschlüssel IDwg, also die ID (Primärschl.) des WG-Datensatzes gefunden und auch abgespeichert werden. Es geht halt darum, zum Ansprechen eines Datensatzes die WG-Nr. eines zulässigen Datensatzes einzugeben. Hierzu muß also die WG-Datei herhalten, um zu überprüfen, ob es eine solche Warengruppe überhaupt gibt. Die ID dieser Warengruppe wäre dann beim Artikel die Nr. der richtigen Warengruppe, aber nicht im Klartext sondern halt die WG-ID. Der Benutzer soll aber von solchen Spielchen nichts merken. Er soll halt nur jedem Artikel die WG-Nr. zuordnen. Ist das geschehen, so soll er die Warengruppen-Bez. auf dem Bildschirm sehen. Einfach aber doch kompliziert zu schreiben. :dancer2: Wie mache ich das am besten bzw. wo fange ich sinnvollerweise an? Alles im SQL Zusammenhang zu sehen ! :nerd: Die Theorie ist mir ziemlich klar, aber nicht die Implementierung in Delphi. Gruß Hansa |
:oops: Äh, ist mir erst jetzt aufgefallen...
Nochmal zum Zugriff: man muss ja nicht unbedingt IBX benutzen, um eine Interbase/Firebird-DB zu öffnen. Was spricht denn dagegen, die veraltete BDE oder die noch junge DBX für solche Zugriffe zu verwenden? Cu, :D Udontknow |
Hi Udontknow,
Antwort auch erst jetzt gesehen. Von der BDE hört man aber nur, sie sei Mist. Ich erinnere mich noch dunkel an Turbo Vision u.a. von Borland. Wer mit sowas erst anfing, oh je. Deshalb habe ich es erst gar nicht vor. Vielleicht irre ich mich ja, aber meiner Meinung nach verschwindet die BDE bald in der Versenkung. Oder glaubst Du, Borland hätte Interbase-Open-Source eingestellt um jetzt Geld dafür zu verlangen und jeder steigt auf Firebird um und nutzt locker die BDE weiter? Lese Dir mal das hier in Ruhe von vorne an durch. Insbesondere Lemmy's Beiträge. Meiner Ansicht nach gibt es (außer alles ist Open Source) folgende (groben) Möglichkeiten für einen Entwickler: 1. Datenbank sauteuer oder Runtime-Lizenzen (Oracle,Informix u.a.) oder beides. 2. Datenbank umsonst (Firebird) und Runtime Lizenzen (glaube bei IBobjects) 3. Datenbank umsonst, aber einiges muß noch dazugekauft werden (FIBplus ca. 200€) Natürlich muß man eine passende Programmiersprache auch noch haben. Delphi muß man ja auch kaufen. Aber, ob ein Programm oder 1000 verkauft werden braucht einen nicht mehr zu interessiern. Ein Programm für 100€, das mit Oracle Datenbank geliefert wird, habe ich noch nicht gesehen. Wird in einer Fa. nur zum Eigenbedarf programmiert sieht das ganze natürlich ganz anders aus. Gruß Hansa |
Hi,
was ich weiter oben über Probleme mit DBlookUpCombobox geschrieben habe, geht jetzt soweit. Man muß sich nur an folgendes halten: Doberenz/Kowalski Delphi 6 (S. 166) Es ist eine kleine Tabelle die ich hier nicht formatiert hinkriege. Aber etwas ganz einfaches klappt überhaupt nicht! Master/Detail LookUpBox usw. geht, aber wie komme ich denn überhaupt über eine simple Art.Nr. an die Daten eines Artikels? Bzw. wie kann ich z.B. aus einem EditFeld die Daten mitels SQL an die DB übergeben, so daß er mir diese irgendwo anzeigt? Oder feststellen, ob der Artikel vielleicht gar nicht existiert? Naja war heute vielleicht auch zu stressig. Gruß Hansa |
Hi,
da hier öfters die Frage nach FIBplus usw. aufgetaucht ist, möchte ich euch folgenden Link melden, auf den ich durch Zufall gestoßen bin : ![]() Das scheint ein neues Borland-Forum zu sein, das sich nicht nur um Delphi dreht. Dort gibt es eine deutschsprachige Rubrik über FIBplus. Desweiteren kann ich noch mitteilen, daß die Teile bei mir ganz gut und auch schnell laufen. Und noch was für Datenbank-Spezialisten: Angeblich funktioniert es sogar, aus Delphi heraus die Interbase-Arrays zu benutzen! Das soll angeblich bei IBX usw. nicht gehen. Aber ohne Gewähr! Hab es gerade erst gelesen. :mrgreen: Gruß Hansa |
Hi,
Zitat:
Grüsse, Daniel :hi: |
TeamForum4 soll ähnlich dem TeamB aus den Staaten werden, läuft aber nicht so recht an. Wird z.Z. von Borland als offizieller Ansprechpartner bei Problemen genannt. Die meisten nutzen aber lieber die Borland.com Newsgroups, da die hervorragend besetzt sind - aber halt nur in Englisch.
|
Hi,
Zitat:
Gruß Hansa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 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 by Thomas Breitkreuz