Probleme Paradox-Datenbank in Borland C++ Builder 5
-
Ja genau, so ist das ja auch richtig, oder?
-
Ja. Du kannst das .db auch einfach weglassen. Macht keinen Unterschied.
-
Elli(Gast) schrieb:
... aber auf active setze und starte, wird nicht sortiert, es bleibt alles beim alten, ...
Lieben Dank, Elli.Das Query, in dem Du sortierst, muss (über die DataSource) natürlich an das DBGrid gebunden werden. Wie zeigst Du die Daten denn an?
Übrigens solltest Du nicht direkt Active auf true setzen, sondern die Methoden Open() und Close() verwenden. Die setzen dann intern Active auf den entsprechenden Wert.
-
Also die Kundendaten zeige ich jeweils einzeln in einem DBEdit an, sozusagen z.B. eins für Vorname, eins für Nachname usw. Die Steuerung erfolgt über DBNavigator und ich zeige alle Daten aus der Tabelle an (alle Spalten)
Die CD-Daten zeige ich im DBGrid an, aber nur 3 ausgewählt (Interpret, Titel, Plattenfirma). Hier erfolgt die Steuerung einfach über Pfeiltasten bzw. über die Funktion suchen, mit der ich nach Titel oder Interpret suchen kann.
Nebenbei, ich hab grad etwas gefunden, um zumindest einige Refreshs zu umgehen. Und zwar nutze ich für die einzelnen Seiten ein Tabbed Notebook. Öffne ich nun eine Kartei davon, so setze ich die darin enthaltene Tabelle auf inaktiv und gleich danach wieder auf aktiv, so ist sie ohne Refresh aktualisiert. Sicher kein guter Programmierstil, aber es funktioniert

Ja, das Active in Open() und Close() habe ich für die Tabellen auch so gemacht, hab nur wegen dem test gleich auf true gesetzt

-
Aber die DBEdits und das DBGrid sind mit der gleichen DataSource verbunden, wie das Query, in dem Du die Sortierung durchführst?
-
Ja, da war ich mir schon sicher, dass ich das so einstellen muss. Aber die Sortierung funktioniert trotzdem nicht.

Reicht dafür wirklich die eine Zeile Quellcode oder muss es vielleicht mehr sein?
-
Hallo
Du solltest dir die mitgelieferten Beispiele unter <BCB-Path>\Examples\DBTasks anschauen, insbesondere Filter.
bis bald
akari
-
Die komplette Vorgehensweise wäre:
Query schließen
SQL ändern
Query öffnenif (Query1->Active) Query1->Close(); Query1->SQL->Text = "SELECT * FROM kunde ORDER BY Name ASC"; Query1->Open();@akari: Mit den Filtern ist das so eine Sache. Hab schon erlebt, dass komlexere Filterungen nicht machbar waren und ich zwangsläufig auf reines SQL ausweichen mußte. Kann natürlich auch sein, dass ich mich ein bißchen blöd angestellt hab...

-
Mh, es will einfach nicht funktionieren.

Sag mal, wenn ich den SQl-Code eingebe, dann auf active setze und dann das Query Doppelklicke, erscheinen zwar die Buttons, mit denen ich nach links und rechts usw. schalten kann, aber kein Eintrag. Liegt dort vielleicht der Fehler?
-
In dem zugeordeneten DBGrid (oder den DBEdits) sollten die Daten angezeigt werden.
Nochmal: Ist das DBGrid und das Query ein und der selben DataSource zugeordnet?
-
Ja, ist beides DataSource2
-
Okay, über AddFields habe ich die Felder jetzt auch dabe, trotzdem funktioniert es nicht!

-
Okay, ich bin's nochmal und zwar habe ich jetzt rausgefunden, dass es doch funktioniert. Wenn ich auf das Query rechts klicke und Explore wähle, komme ich in den Database Explorer. Dort kann ich unter DefaultDD Tables anwählen und dort wieder meine CDs.db. Wenn ich die öffne und bei "Enter SQL" den Text eingebe und laufen lasse, funktioniert alles. Nur irgendwie im Formular dann nicht? Hab ich die falsch eingebunden? Die Datei cds.db, die ich wie beschrieben testen kann, ist nämlich auch in einem ganz anderen Pfad (...\Borland Shared\SampleDictionary). Wie kann ich den Pfad ändern oder die Datei dann richtig einbinden?
Nochmal vielen Dank und sorry wenn ich nerve
Elli.
-
Am einfachsten legst Du in der BDE einen Alias an und verbindest Deine Komponenten über diesen Alias.