C++ Builder + Datenbanken ohne BDE oder ähnliches [möglichst einfacher Umstieg]



  • Okay das erklärt einiges 🙂

    allerdings bleibt bei mir noch die frage welche version ich brauche von wegen Classic / SuperServer oder irgendwie embed was da noch auftaucht.

    Ausserdem taucht immer mal wieder was von server etc auf... dabei war das doch das was ich vermeiden wollte das programm sollte doch ohne "hilfe " auf die db zugreifen



  • Erstelle für dein Programm doch eine Installations Datei, z.B mit InstallShild. War bei der 5er Version von Borland dabei obe es bei den höheren so ist weiß ich nicht.
    Und steige am besten auf MySQL um, BDE ist absoluter scheiß.
    In deiner Installations Datei kannst du dann auch die Verknüpfungen zur ODBC erstellen.

    Dann brauchst du nur noch die Exe ausführen, Programm installieren und alles ist eingerichtet.



  • summerset83 schrieb:

    Und steige am besten auf MySQL um, BDE ist absoluter scheiß.

    bei letzterem muss ich dir vollkommen recht geben,

    aber jetzt nich schon wieder was neues kein MySQL jetzt mal bei firebird bleiben 😃

    gibts da eine Funktionsweise ohne server?



  • Hallo

    genau dafür ist die Embedded-Version, dann brauchst du keinen zusätzlichen Server.

    bis bald
    akari



  • Alternativ kannst du dir auch SQLite anschauen oder aber wie schon hier gepostet wurde: mysql



  • akari schrieb:

    bis bald

    😃 so kommt das bald doch schnell 😃

    Danach als Beispiel:
    1)Query auswählen und DataBaseName auf meinalias.fdb setzen, SQL-Abfrage mit Stringeditor erzeugen

    //2)DataSource auswählen und Eigenschaft DataSet auf Query1 (SQL-Abfrage)setzen.
    //DBCtrlGrid1 auswählen und Eigenschaft DataSource auf DataSource1 setzen.
    //3)DBText auswählen und auf DBCtrlGrid1 platzieren. DataSource auf DataSource1 //setzen, DataField auf dein benötigtes Tabellen-Feld setzen.
    

    ich gehe jetzt einfach mal davon aus das "SQL-Abfrage mit Stringeditor erzeugen" ne einfache abfrage über das TQuery per SQL ist ..
    (somit ist der erste punkt der einzig interesante für mich...)

    allerdings funktioniert es nicht:
    "Unknown Database.
    Alias Data.fdb"...

    kanns sein das ich die dll noch irgendwie vorher ins projekt linken muss 😕
    in der Readme heißt es lediglich

    Just copy fbembed.dll into the directory with your
    application. Then rename it to either fbclient.dll or
    gds32.dll depending on your database connectivity software.



  • download123 schrieb:

    allerdings funktioniert es nicht:
    "Unknown Database.
    Alias Data.fdb"...

    Just copy fbembed.dll into the directory with your
    application. Then rename it to either fbclient.dll or
    gds32.dll depending on your database connectivity software.

    also, du musst die datei umbenennen nach fbclient.dll; zu deinen projekt musst du nicht extra linken

    was ich bei mir festgestellt habe ist, dass ich im sql-query die datensource in Anführungsstriche setzen muss:
    bsp: Select * From "TableName"; wobei TableName, der name für TableName.fdb ist

    hoffe das hilft dir

    greetz



  • es geht keins von beiden ... wenn ich als Database name DATA.FDB angebe, bekomme ich fehler von wegen ... "EDB Engine Erorr with message 'Unknown database Alias : DATA.FDB'."...

    wenn ichs einfach weglasse heißt es
    EDB Engine Erorr with message 'Table does not exist. File or directory does not exist ..."

    wenn ichs so mache

    dass ich im sql-query die datensource in Anführungsstriche setzen muss:
    bsp: Select * From "TableName"; wobei TableName, der name für TableName.fdb ist
    

    streikt der compiler *Verstänglicher weise*

    mit \"TableName\" gehts auch nicht...

    meine idee... das TQuery vieleicht das Falsche Query ist?
    Oder woran kanns liegen



  • Soweit ich das jetzt verstanden habe sollte ich die IBteile nehmen... hm... aber das geht auch noch nicht ganz
    ..
    Das TQuery auf TIBQuery umzustellen ging super ... aber für IB brauche ich scheinbare auch eine Database objekt. und das will noch nicht so wie ich will.

    Im Connection test gehts zwar einwandfrei, (TIBDatabase objekt doppelklick und dann test) aber im programm selber versuche ich das ganze dann zu öffnen Database->Open() ....(stimmt das?)

    Funktioniert aber alles in allem nicht... ich bekomme den fehler : "... EIBClientError with message 'Transaction not assigned'"

    😞



  • Alle Datenbankaktivitäten laufen bei Firebird im Kontext einer Transaktion (TA).
    Man muss deshalb einfach der TIBDatabase Komonente eine TIBTransaction Komponente zuweisen. Diese kann/wird dann von allen anderen TIB Komponenten auch als Transaktion benutzt. Solange keine TA bekannt ist geht nichts 😞 .

    P.S. Nur als Tipp. Die Daten werden erst dann in die DB eingetragen, wenn du die Transaktion bestätigst. (mit dieTransaktion->Commit() oder dieTransaktion->CommitRetaining()). Am besten dazu nochmal in der Hilfe nachlesen 😉


Anmelden zum Antworten