Entwickler-Ecke

Datenbanken - Standard Pfad für Datenbank ändern


OliverN_26 - So 26.12.10 19:39
Titel: Standard Pfad für Datenbank ändern
Hi Leute

Wo liegt, wenn ich ein Programm schreibe, was auf eine Datenbank zugreift (.db), denn die Kopie meiner Datenbank?
Wenn ich das Programm deinstalliere und wieder neu installiere sind die Daten die ich zuvor in die Datenbank geschrieben habe immer noch da.
Das ist in Ordnung. Gestern habe ich allerdings ein neues Feld in die Datenbank eingefügt und nun sagt er mir ständig dass er DIESES Feld nicht
in der Datenbank findet und ich bekomme deswegen einen Fehler. Die .db Datenbank Datei liegt in meinem Programmordner aber darauf scheint er nicht zuzugreifen :-(
Wo und wie kann ich das denn aktualisieren?

Ich bin hier seid 2 Tagen echt am verzweifeln.
Bitte helft mir :-(

danke
lg


Tankard - So 26.12.10 20:25

Hi,
ohne angabe welche komponente du benutzt wird es schwer. meine kristallkugel habe ich leider nicht zur hand;)

gruss
tankard


bummi - So 26.12.10 20:54

Klingt als ob Du in die Virtualisierung von Vista oder Windows7 reinläufst (DB im Windows oder Programm(unter)ordner).
Such mal in C:\ProgramData\?? ()
oder
C:\Users\USERNAME\AppData\Local ()

beide im Explorer default unsichtbar
ALT+X Ordenroptionen Ansicht "Augeblendete Dateien, Ordner und Laufwerke anzeigen"


OliverN_26 - So 26.12.10 23:06

Hallo

Also der Tip mit dem "VirtualStore" war schon mal goldrichtig.
Da habe ich tatsächlich Ablagen der alten Datenbank gefunden, aktualisiert und nu läuft es wieder.
Aber ich hab jetzt ein anderes sehr kurioses Problem.
Mein Programm verwendet ne Paradox Datenbank (lüncht mich nich gleich .. ich weiss ja Bescheid) und jedes Mal wenn ich das Programm starte daget der mir
"Exception EDBEingineError in Modul.. - Unknow Database. Alias: .."

Das bedeutet dass der DatenbankName nicht angelegt ist --> stimmt aber nicht. Wenn ich das BDE KonfigurationsTool "BDE-Administrator" starte steht da die Datenbank
und das kuriose ist, sobald der Manager geöffnet ist läuft das Programm so wie es soll. Schliesse ich den BDE-Administrator sagt der mir "Unknown Databas".
Was soll das? So Probleme hatte ich doch sonst nicht ...

Und bitte .. keine Predigten über BDE oder nich. Ich weiss die is veraltet und wird nich mehr weiter entwickelt. Für kleinere Homeprojekte nutze ich sie trotzdem ab und an.

Vielen Dank


jaenicke - So 26.12.10 23:19

Das Problem ist, dass die BDE nun einmal mit Vista und Windows 7 nicht richtig funktioniert. Das ist so, Punkt. In größeren Projekten, insbesondere in Firmen, ist die Ablösung nicht so einfach, deshalb wird sie da auch heute noch verwendet. Aber ausgerechnet in kleinen Projekten? :shock:
Na gut, wenn du dir das Leben schwer machen willst...

Das Problem kann auch hier die Virtualisierung sein. Die BDE-Administrationsoberfläche muss mit Adminrechten gestartet werden, damit sie in den Pfad schreiben kann. Wurde aber vorher die idapi32.cfg bereits virtualisiert erstellt, dann gibt es davon zwei...
Wenn du jetzt die BDE-Konfiguration startest, benutzt die die eine Datei mit den einen Einstellungen. Und setzt z.B. auch die Pfade entsprechend. Wenn du dann dein Programm startest, ist alles ok.

Startest du jetzt das Programm alleine, wird aber evtl. eine andere Version der Datei benutzt. Schau einmal, ob auch die idapi32.cfg im VirtualStore liegt.

Dann ist noch das eingestellte Verzeichnis wichtig. Standardmäßig ist das das Laufwerk C: direkt im Root. Leider existiert das aber a nicht immer und b ist es in der Regel nicht beschreibbar...
Du musst also in der Konfiguration alle Pfade auf ein beschreibbares Verzeichnis setzen.

Dazu kommt, dass das Private Dir bei jeder Instanz deines Programms ein anderes sein sollte. Die Verzeichnisse (SessionDir, ...) solltest du deshalb beim Programmstart in der ersten Unit in der uses des Projekts korrekt setzen und die BDE auch gleich initialisieren.

Leider hilft auch das alles nur bedingt, aber zumindest wenn nur auf einem PC ohne Netzwerkfreigaben auf die Datenbank zugegriffen wird, läuft es so in der Regel stabil. Leider auch nicht 100%ig immer.

Deshalb kannst du viel versuchen, aber wenn es nur ein kleineres Projekt ist, wäre es viel viel einfacher gleich auf ein ordentliches Datenbanksystem umzusteigen. Erstens hast du dann deutlich weniger Probleme, zweitens deutlich mehr Features und drittens ist es bei kleineren Projekten auch teilweise deutlich einfacher (bei größeren leider nicht unbedingt...).


OliverN_26 - So 26.12.10 23:59

Hey

Alles klar. Lag wirklich daran. Auch diese Datei lag in dem VirtualStore Ordner. Dann weiss ich jetzt zumindest woran das gelegen hat.
Thema BDE. Ich weiss das ihr Recht habt, aber 1. habe ich eine BDE Version für Windows 7 64-Bit und die läuft 1A und 2. nutze ich sie wohl da ich nich der Mega Programmierer bin und ehrlich gesagt nich wirklich weiss welches Datenbanksystem "einfach" und "ordentlich" ist. Hatte da schon mal mit den ADO Komponenten angefangen aber nich so richtig geschnallt.

Hast du eine "einfache" alternative für nen Laien?

Und danke noch mal für die Tips.
Mein eigentliches Problem ist zumindest gelöst.

lg

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.


jaenicke - Mo 27.12.10 01:44

user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
aber 1. habe ich eine BDE Version für Windows 7 64-Bit
Das ist unmöglich, denn die BDE wird seit August 2001 nicht mehr weiterentwickelt. Wie soll denn zu dem Zeitpunkt jemand bereits für Windows 7 entwickelt haben?

Außerdem merkst du doch an den Problemen mit dem VirtualStore, dass die BDE eben gerade nicht für Windows 7 geeignet ist, da diese schlicht ins eigene Verzeichnis schreiben will, was natürlich schief geht.

user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Hast du eine "einfache" alternative für nen Laien?
Kommt darauf an was dir wichtig ist. Es gibt z.B. embedded Datenbanken, die keinerlei Installation benötigen. Die brauchen höchstens ein paar DLLs, die einfach im Programmverzeichnis liegen können.

Es gibt z.B. SQLite for Delphi:
http://sqlite4delphi.sourceforge.net/

Dann noch Firebird Embedded, z.B. auch in Kombination mit Zeos. Und auch noch diverse andere.


bummi - Mo 27.12.10 01:47

Un wenn Du den Gratismercedes mit guter Oberfläche und allen Möglichkeiten willst SQLExpress 2005 oder 2008 mit ADO.


OliverN_26 - Mo 27.12.10 03:07

Danke euch .. werd mir das mal ansehen.
Ich weiss dass die BDE nicht weiterentwickelt wurde, allerdings gibt es Update Versionen die die letzte BDE, wie in meinem Fall, unter Windows 7 64-Bit z.B. zum laufen bringen.

cu


jaenicke - Mo 27.12.10 06:43

user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiss dass die BDE nicht weiterentwickelt wurde, allerdings gibt es Update Versionen die die letzte BDE, wie in meinem Fall, unter Windows 7 64-Bit z.B. zum laufen bringen.
Welche meinst du? Das letzte Update, das ich kenne, ist die Version 5.2, und das funktioniert unter Windows 7 nicht vollständig. Und die Probleme mit dem VirtualStore zeigen doch, dass da keine Anpassung an die Systemgrundlagen gemacht wurde.