Frage zu Datenbank-Formularen
-
Also wenn ich es jetzt richtig verstanden habe, verwende ich statt BDE einfach "SQL-Connection" und "SQL-Query" und verwende dann statt DBEdits einfach die Standart-Edits? Hast du eventuell n Tip wie ich dann weiter vorgehen muss, um an mein Ziel zu kommen? Mit den normalen Edits kann ich
doch gar nicht auuf die Datenbank zugreifen oder? Jeden falls nicht über den Inspector...@Joe_M:
Die Eigenschaft/Methode "RecNo" bzw. "Locate" sind im Object-Inspector gar nicht vorhanden!?
-
Reloader schrieb:
hab da mal ne Frage zu einem Datenbank-Formular. Ich habe mit BDE ein Formular erstellt
Wie hast Du denn das Formular erstellt? Mit dem Formular-Experten?
Vielleicht kannst Du mal ein bisschen Source-Code zeigen.Reloader schrieb:
Die Eigenschaft/Methode "RecNo" bzw. "Locate" sind im Object-Inspector gar nicht vorhanden!?
Hast Du schon mal in der BCB-Hilfe danach geschaut? Ein Zugriff auf diese Eigenschaft/Methode ist nur zur Laufzeit möglich - und
auch dann nur wirklich sinnvoll. Die Begriffe "published", "public", "protected" und "private" sagen Dir etwas?Reloader schrieb:
verwende ich statt BDE einfach "SQL-Connection" und "SQL-Query"
Was verstehst Du eigentlich unter "BDE", "SQL-Connection" und "SQL-Query"? Ersteres ist mir als Borland Database Engine bekannt, aber
ich habe mit Hilfe der BDE noch nie Formulare erstellt (ich wusste gar nicht, dass das überhaupt geht).Gruß,
Alexander
-
Also unter "BDE" verstehe ich auch "Borland-Datbase-Engine". Ich beschreibe dir in kurzen Schritten wie ich das Formular erstellt habe:
1. Ich habe ein neues Projekt erstellt, also habe ich ja auch ein MainForm.
2. Habe ich mit Access eine Datenbank erstellt
3. Habe ich dann mit "DataSource" und "BDETable" meine Access-Datenbank in das Projekt eingebunden.
4. Habe ich dann halt DBEdits auf dem Formular gemacht. Da kann ich dann im Objekt-Inspector für jedes DBEdit eine Datenbank auswählen. Wenn ich das gemacht habe, kann ich dem DBEdit ein Datenfeld zuweisen. Über den DBNavigator kann ich ja dann in der Datenbank blättern (vor/zurück/neu/löschen/...). Genau das möchte ich nicht, ich will im Prinzip den DBNavigator weglassen, also ein weiteres Feld einbinden, z.B. das Feld "Suchen". Wenn ich jetzt in diesem Feld "Suchen" einen Namen eingebe, soll das Programm die komplette Datenbank absuchen, ist ein Eintrag vorhanden, soll mir dieser also komplett angezeigt werden:Wenn ich das Prog starte, sollen alle Felder leer sein:
Suche: [...........]
Name : [..................]
Vorname: [..................]
PLZ : [..............]
Ort : [..............]
Str.: [..............]Jetzt soll das Prog die komplette Datenbank nach dem Eintrag "Muster" absuchen:
Suche: [Muster......]
Name : [..................]
Vorname: [..................]
PLZ : [..............]
Ort : [..............]
Str.: [..............]Ist der Eintag "Muster" vorhanden, soll er angezeigt werden:
Suche: [...............]
Name : [Muster...........]
Vorname: [Mustermann........]
PLZ : [12345.........]
Ort : [GibtKeinen....]
Str.: [MusterStr.14b.]Wobei die Platzhalter "[.....]" jetzt für die DBEdits stehen.
Ich muss dabei sagen, das ich noch nicht lange Progge, und deshalb arbeite ich noch viel mit dem Obejekt Inspector, schreibe also kaum code selber.
Hoffe ist einigermaßen nachvollziehbar...
-
Du hast also eine TTable-Komponente verwendet. Diese hat, wie Du selbst in der BCB-Hilfe nachschauen kannst, die schon zuvor erwähnte
Eigenschaft "Filter". Die könntest Du meines Erachtens für Deine Zwecke verwenden. Bei der Gelegenheit solltest Du Dir auch mal die
Eigenschaft "Filtered" anschauen.
Lege einfach noch ein TEdit auf Dein Formular und weise diesem TEdit eine Ereignisbehandlungsmethode für das KeyDown-Ereignis zu.
Darin passt Du jeweils einfach die Filter-Eigenschaft an.
Empfehlenswert wäre es aber auf jeden Fall, wenn Du Dich (sofern noch nicht geschehen) ein wenig mit SQL beschäftigen würdest.
Die auch schon erwähnte TQuery-Komponente könntest Du ebenfalls für Deine Zwecke verwenden. Dieser kannst Du eine eigene Abfrage zu-
weisen, in der Du dann auch viel kompliziertere Filter (<=> WHERE-Bedingung) verwenden kannst.Gruß,
Alexander
-
Ok dann werde ich mal ein wenig rum experimentieren...
In der Hilfe kann ich bei mir leider nicht nach schauen, da mir der C++ Builder immer komplett abschmiert wenn ich die Hilfe öffne. Kennst du vielleicht n paar gute Tutorials, die mir weiter helfen können?
-
Also das mit der Hilfe dürfte eigentlich kein Problem sein...
Geh im explorer einfach unter /Help und öffne bcb.hlpmfg,
chris90
-
Reloader schrieb:
Kennst du vielleicht n paar gute Tutorials, die mir weiter helfen können?
Ja, in der Hilfe gibt es einiges

Du solltest wirklich versuchen, die Hilfe wieder flott zu bekommen. Die BCB-Hilfe ist immer mein erste Anlaufstelle.
Außerdem findest Du im BCB-Verzeichnis unter Examples einige Beispiele (wie der Name ja schon sagt).Gruß,
Alexander
-
Hallo
BDE ist nicht sehr zu empfehlen (besser mittels ADO) aber wenn du nur fuer dich programmierst ...
Zugriff auf Tabellen (einer DB) bekommst du ueber TTable oder TQuery
giob mal TQuery ein und schau dir die Hilfe zu TQuery an
MfG
Klaus
-
Morgen...
Also in der Hilfe habe ich jetzt mal intensiv nachgeschaut, aber leider ohne wirklichen erfolg. Die Hilfe behandelt nur LookUp-ComboBoxen, nur wollte ich das ganze ja eben nicht mit ner KomboBox lösen. Habe mal ein bischen rum probiert, aber leider ohne Erfolg...

-
Hallo
bei mir steht unter Hilfe zu TQuery nichts ueber LookUp-ComboBoxen
TQuery eingeben und markieren
F1-Taste druecken
Eigenschaften anwaehlen
zb SQL anwaehlen -> Beispieleschau auch mal nach dem Unterschied zwischen Open und ExecSQL (sehr haeufiger Fehler)
oder schaumal unter FAQ in den Bereich Datenbanken
MfG
Klaus