.dbf Datei in Dbgrid laden mit allen Tabellen u. Attributen



  • Jetzt müsste sie nur noch im DBgrid erscheinen 😉
    wie geht denn das nun `?



  • Ich habe jetzt anhand von Columns schonmal jedes Feld eingefügt allerdings seh ich nur die überschriften die Datensätze selber hat er noch nicht drinne wieso ???



  • ich kann auch leider nicht im Tquery die Attribute holen da das grau untermalt ist



  • Ich weiß nicht, was Du mir sagen willst... 😕

    Wenn Du so vorgegangen bist, wie ich es beschrieben habe, brauchst Du nur noch, an einer geeigneten Stelle, die Query zu öffnen.

    Dafür schreibst Du z.B. im Konstruktor:

    Query1->Open();
    

    Und im Destruktor:

    if (Query1->Active)
      Query1->Close();
    


  • Joe_M. schrieb:

    @caspar_louis: Das ist schon richtig, aber bei Paradox und dBase funktioniert das tatsächlich ohne eine Verbindung anzugeben, wenn die Dateien im Verzeichnis der EXE liegen ...

    Wieder was gelernt.

    dBase habe ich das letzte mal 1993 programmiert, noch für DOS'e.

    Paradox habe ich mir nie angetan.



  • Also ganz langsam 😉

    im TDataSource steht : DataSet = Query1

    im TQuery : DataBaseName = dBASE-Dateien
    DataSource = DataSource1

    im DBGrigd : DataSource = DataSource1

    Unter der TQuery->Query1 (sprich wo ich doppelklick gemacht habe konnte ich alle Tabellen einfügen, das at geklappt nun wollte ich rechtsklick machen und die Attribute für die Tabellen holen, das ist grau unterlegt und geht nicht...

    Weiter biem DBGrid da habe ich nun unter Columns alle Tabellen eingefügt, somit erhielt ich schonmal alle Spaltenüberschriften.. aber die Attribute fehler weiterhin..

    Im DBGrid wird so nix angezeigt... spriche nur Tabellenüberschriften und Attribute..

    Ich möchte natürlich aber auch die Attribute HELP ! :p



  • ich meinte natürlich nur Tabellenüberschriften OHNE Attribute



  • azad187 schrieb:

    Unter der TQuery->Query1 (sprich wo ich doppelklick gemacht habe konnte ich alle Tabellen einfügen, das at geklappt nun wollte ich rechtsklick machen und die Attribute für die Tabellen holen, das ist grau unterlegt und geht nicht...

    Was erwartest Du an dieser Stelle? Hast Du ein Data-Dictionary erzeugt? Ohne geht es nicht. Was stellst Du dir unter diesen Attributen vor?

    azad187 schrieb:

    Weiter biem DBGrid da habe ich nun unter Columns alle Tabellen eingefügt, somit erhielt ich schonmal alle Spaltenüberschriften.. aber die Attribute fehler weiterhin..

    Welche Tabellen? Eigentlich kannst Du an dieser Stelle nur Felder aus der/den Tabelle(n) aus dem Select einfügen. Wenn nur die Feldnamen angezeigt werden und sonst nichts, wird die Datenmenge wohl leer sein?!?

    azad187 schrieb:

    Im DBGrid wird so nix angezeigt... spriche nur Tabellenüberschriften ohne Attribute..
    Ich möchte natürlich aber auch die Attribute.

    siehe oben



  • Was erwartest Du an dieser Stelle? Hast Du ein Data-Dictionary erzeugt? Ohne geht es nicht. Was stellst Du dir unter diesen Attributen vor?

    Nein ich habe kein Data Dictionary, aber wenn man rechtsklick auf die Tabelle macht kann man Attribute holen dies ist aber grau unterlgt... Was stellt man sich wohl unter Attribute vor.... Alle Daten die z.b Kundenname angehören...

    azad187 schrieb:
    Weiter biem DBGrid da habe ich nun unter Columns alle Tabellen eingefügt, somit erhielt ich schonmal alle Spaltenüberschriften.. aber die Attribute fehler weiterhin..

    Welche Tabellen? Eigentlich kannst Du an dieser Stelle nur Felder aus der/den Tabelle(n) aus dem Select einfügen. Wenn nur die Feldnamen angezeigt werden und sonst nichts, wird die Datenmenge wohl leer sein?!?

    Er soll doch einfach nur im Dbgrid die ganzen Daten ausspucken das wird doch nicht zuviel verlang sein Access macht das doch auch und jede andere Datenbank wenn ich alles Select habe was in der Kunden.dbf enthalten ist soll er mich auch alles anzeigen :D.. Die Datenmengen sind ganz sicher nicht leer!



  • Schau doch bitte mal in der BCB Hilfe unter Feldattribute.

    Du meinst wohl die Werte. Die sind im Feldeditor nicht einsehbar. Im DBGrid brauchst Du nichts einzutragen. Die Feldnamen werden direkt aus der Tabelle gelesen.

    azad187 schrieb:

    Er soll doch einfach nur im Dbgrid die ganzen Daten ausspucken das wird doch nicht zuviel verlang sein Access macht das doch auch und jede andere Datenbank wenn ich alles Select habe was in der Kunden.dbf enthalten ist soll er mich auch alles anzeigen :D.. Die Datenmengen sind ganz sicher nicht leer!

    Genau das passiert, wenn Du das machst, was ich gepostet habe. Du mußt nichts anderes machen! Keine Spalterüberschriften im DBGrid eingeben - nichts weiter. Nur die drei Komponenten auf das Form legen, den Select unter SQL eintragen, die Query öffnen und natürlich auch das Programm starten...



  • Also ich weiss ja schonmal das er auf Die Datenbank zugriff hat aber wie gesagt wenn ich das exakt so mache wie du es sagst und dann einfach nen button reinklatsche der sagt Query1->Open(); kommt wieder der Speriauslastungsfehler



  • Speriauslastungsfehler = Speicherauslastungsfehler 😉



  • Tja, dann weiß ich auch nicht weiter. Es kann natürlich auch einfach eines der üblichen Probleme sein, die dBase und die BDE heutzutage haben. Schließlich wird beides seit Jahren nicht mehr weiterentwickelt und ist laut Borland End-Of-Life.

    Du kannst natürlich mal mit den Parametern in der BDE rumexperimentieren (unter Konfiguration | System->Init). Aber ich kenne nur die Probleme, die Paradox verursacht. Bei dBase kann ich dir nicht sagen, welche Parameter Du verändern mußt. Grundsätzlich kannst Du die Speicherverwendung anheben. Mach dir aber ein Backup der alten Config, bevor Du anfängst zu testen.



  • Also mal zum Mitmeißeln

    if (Query1->Active) 
       Query1->Close();  // mach ich immer zur Sicherheit auch vor erster Belegung
    
    Query1->SQL->Clear(); // SQL leermachen! Da könnte was aus der Entwurfszeit drin stehen
    Query1->SQL->Add("select <<Column1>>,<<Column2>> ... from <<Table1>> where <<Bedingung>> order by <<Sortierung>>"); // Damit hast Du Deine gewünschte Datenmenge beschrieben
    Query1->Open(); //Damit hast Du Deine Datenmenge "connected"=die Abfrage ausgeführt
    

    Damit hast Du Dein DataSet (Abfragemenge) der Datenquelle (Datasource). Diese Datenquelle wir durch DBGrid lediglich angezeigt. Wenn Du die Spalten( Column) nicht anders benennen willst, mußt Du hier keine Spalten angeben.
    Die Einschränkung der Spalten kannst Du direkt im Select vornehmen.
    Auch in der Query mußt Du den Feldeditor nicht zwangslaäfig verwenden.

    ABER:

    Deine SQL-Abfrage muß SQL-kompatibel zum SQL Deines DBMS sein. Kann es sein, daß Deine Abfrage nicht funktioniert?



  • mit der Varainte von casper kommt Indexfehler



  • Wenn Du den SELECT einfach so kopiert hast kann das nicht funktionieren, da es garantiert keine Felder namens <<columnX>> gibt... Du solltest dich etwas mit SQL vertraut machen.
    Wenn der SELECT, wie Du gepostet hast, Nur aus SELECT * FROM "Kunden.dbf" besteht, MUSS das funktionieren...



  • so es klappt der Formularassistent hat mir geholfen die Sql anweisung war ein wenig explizierter und alles funzt bisher bei weitern fragen zu sql muss ich wohl ein anderes thema machen oder vllt hat auc einer einen guten tutorial für SQL habe ja schon ein wenig erfahrung aber naja 😃



  • Dann poste in Zukunft bitte bei Problemen den exakten Select. Ich denke das hätte uns etliche Posts gespart...


Anmelden zum Antworten