Beim Kompilieren kommt diese Fehlermeldung garantiert nicht.
Das ist eben nicht garantiert, wenn die Datenmenge beim Kompilieren bereits geöffnet ist ...
Doch ist es. Der Compiler hat mit den
DB-Verbindungen herzlich wenig zu tun, und führt sicherlich keine Vorab-Laufzeittests mit "irgendwelchen" Komponenten durch. Ob die
DB beim Kompilieren geöffnet ist oder nicht, oder überhaupt nicht existiert - davon bekommt der rein gornischt mit. Das ist ein
Laufzeitfehler, der mit 100%iger Sicherheit beim Ausführen des Programms passiert.
Und wie zuvor schon öfter angedeutet ist das Problem, dass hier an manchen Stellen an denen die Datenmenge bearbeitet wird (Post, Append, etc.) ein vorhergehendes Open fehlt.
Und: Selbst eine
XML-Datei ist, wenn sie über entsprechende Provider angesprochen wird (die, die es erst ermöglichen DBEdits und Co einzusetzen), innerhalb der Delphientwicklung als defacto Datenbank anzusehen. Alle Vorgänge sind praktisch identisch aus Sicht des Programmierers. Daher sind die Tutorials ganz genau das, was dir hilft da tiefer einzusteigen.
Noch etwas: Wenn du meinst, man wolle dich "runter machen", dann ist das eine für Foren ganz schädliche Einstellung. Schädlich für dich allerdings nur. Wenn du es nicht erträgst, dass man fachlich nüchtern nachfragt, dich berechtigterweise auf Fehler hinweist (nicht nur im Code, sondern auch deiner Art zu fragen!), dann ist das zunächst einmal nichts weiter als eine Information. Du kannst dann selbst entscheiden, ob du dich darüber aufregen willst, dich angegriffen fühlst, oder es als Anreiz nimmst deine Formulierungen deutlicher und mit mehr Infos zu machen.
Hier wurde noch niemals ein Neuling schief angemacht, nur weil er neu ist. Du musst dir einfach nur darüber im Klaren sein, dass keiner von uns in deine Gedankengänge schauen kann, und dass alle Probleme auf 1000 Arten angegangen werden können. Es ist an
dir uns auf deinen Weg mitzunehmen, so dass man überhaupt eine Chance hat dir zu helfen. Die richtige Terminologie (und wenn man sie nicht kennt bitte nicht einfach nach Gutdünken falsch nutzen, sondern umschreiben und nachfragen!) und vollständige Infos sind einfach die aller unterste Basis jeder Hilfestellung.
Beispiel:
"Hallo Leute, wie baue ich einen Tisch!? Meiner fällt immer um!"
Es gibt sicherlich zigtausende Arten einen Tisch zu bauen. Hier fehlt z.B.:
Welche Materialien? Holz: Welches? Gemischt: Was an welcher Stelle? Welche Güte?
Wann fällt er um?
In welche Richtung?
Fällt er nicht etwa eher zusammen, statt um?
Was für Werkzeug hast du?
Was ist die grobe Form des Tisches, und geht du ggf. nach einem vorhandenen Muster vor?
Wie sieht der Tisch kurz vorm umfallen aus, wie danach, und was hättest du eigentlich erwartet was statt des umfallens in diesem Moment hätte passieren sollen?
Wie soll der Tisch aussehen wenn er fertig ist, und an welchem Schritt genau hapert es?
Alles Dinge, die man einem Fragesteller entweder in Kleinarbeit aus der Nase ziehen muss (und es ist ja nicht so, als gäbe es nicht viele davon), oder der Frager hat sich ausreichend mit dem Problem befasst, so dass er es gleich am Anfang so schildert, dass man als (kostenloser, freizeitlicher und altruistischer) Antworter das Problem zu packen bekommt, und nicht erst 2 Seiten lang drum herum tänzeln muss. Sei versichert: Es hilft am Ende vor allem dem Frager. Wenn du jetzt noch immer beleidigt bist, dann ist Informatik nichts für dich.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)