Zum Inhalt springen

[Delphi] DB-Namen in der Combobox zur Laufzeit


DerWolf

Empfohlene Beiträge

Hallo Leute!

So langsam aber sicher werde ich deprimiert! :confused:

Zum Thema: Ich möchte beim Programmstart die Datenbanknamen (allgemein) in der Combobox angezeigt bekommen.(zur Laufzeit)

Wer es nicht weiß, mein Prog soll ein DB-Explorer werden mit TreeView ind ListView usw. Und so möchte ich mit Hilfe der Combobox eine Datenbank aussuchen und diese mit ihren Eigenschaften im TreeView bzw. Listview ausgeben!

Wer kann mir dazu etwas sagen?

Danke auch schonmal im voraus!

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, nachdem der Hobel gerade vorm absenden abgeschmiert ist, kommt hier die Antwort:

Die Sessionvariable ist wahrscheinlich genau das, was Du brauchst.

Dieses Beispiel packt die Aliasnamen in die Combobox:

for iDB := 1 to Session.DatabaseCount

do ComboBox1.Items.Add(Session.Databases[iDB].AliasName);

Hoffe Dir geholfen zu haben!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zu früh gefreut!:(

Oder ich stehe mal wieder auf`m Schlauch quasi!

Nochmal:

Wie bekomm ich in die Combobox alle Datenbanknamen?

Wichtig ist zur Laufzeit! Wenn ich das Programm starte, möchte ich in der Combobox eine von vielen DB`s auswählen können und diese im TreeView ausgeben!

Habe `ne TDatabase und `nen SQLTable zur Verfügung, wobei die TDatabase abgeändert ist(eigenes Package)!

Ganz Wichtig! Ich soll keine BDE oder Session benutzen!

Kann man mir da nochmal helfen? Ich habe alle Bücher schon durchforstet, aber ein Bsp oder ähnliches habe ich nicht gefunden!

Please help!!

Danke!

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ihr habt also das Rad neu erfunden!:uli ;)

Wo werden denn die DB-Aliase (oder Aliases, oder Alis?) gespeichert? Du hast ja geschrieben, daß das ganze ohne BDE läuft, dann müssen die(ALis) ja irgendwo anders stehen. Oder werden einfach irgendwo auf die Platte die DB-Dateien gepfeffert, ohne das dies irgendwo registriert wird?

Ich warte gespannt auf weitere Infos...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die DB-Namen sind in keiner Extra-Tabelle gespeichert.

Ich dachte eher, unter ConnectionName im Objectinspektor hat man ja eine kleine Liste zur Auswahl, die wollte ich nehmen.

Oder ist es besser, es über die dbxConnections.ini zu machen? Halt die Sachen aus einer Ini zu lesen?

Hm, *grummel* wäre wohl doch besser Wirt geworden! ;)

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hör auf mit Wirt, ich werd schon wieder durstig! :)

ConnectionName :confused:

der Eigenschaft bin ich noch nie begegnet und meine Delphi(5) Hilfe kennt sie auch nicht. Meinst Du DatabaseName? Oder ist das eine Eigenschaft die eure Firma dazugezaubert hat? Also wenn Du DatabaseName meintest, werden die Werte im Objektinspektor aus der BDE gezogen, wenn Deine DBs da auftauchen, würde dies bedeuten, daß sie da irgendwie eingetragen werden. Wenn dies so ist würd ich mit deinem Chef nochmal über die Sessionvariable reden.

Wenn die Eigenschaft wirklich ConnectionName heist und nicht neu ist, dann müsst ihr die eingebaut haben, das würde bedeuten, daß Du im Quellcode nachvollziehen können müsstest, woher die Werte kommen.

Der Grad der Spannung und Verwirrung steigen weiter...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by DerWolf

Unser Package ist von SQLConnection abgeleitet. Und da ist das ConnectionName bei!

:confused: Und Nu? :confused: Hm!

Oder hätte ich Pizzabäcker werden sollen? :D

Die TSQLConnection gibt es erst seit Delphi7 (oder6?) und gehört zu dbExpress. Ich denke die einzigste Möglichkeit ist es die ini Datei auszulesen. Bin aber mit DBX selbst erst am Anfang ;) (endlich BDE frei :D). Diese ini-Datei muss dann aber mit ausgeliefert werden.

Wenn du bei der SQLConnection keinen ConnectionName angibst sondern nur den Drivername brauchst du das nicht.

Wir arbeiten mit ClientAccess und wenn nur der DriverName gewählt wurde, nimmt er die bei CA eingestellte Default Verbindung. Über den ConnectionName nimmt er die in der ini Datei eingestellte Verbindung, und die ini muss mit ausgeliefert werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by DerWolf

Hm, ich wollte es ja mit ComboBox1.Items.Add(xxx) machen. Mir wird aber nichts angezeigt!

Was heist dir wird nichts angezeigt? Hast du die Box auch aufgeklappt?

Default ist der ItemIndex = -1, du musst also nach dem Füllen (items.add) den ItemIndex auf 0 setzen.

Was dein Kollege meint ist wohl... wenn es mit Edit1.Text geht, geht es auch mit ComboBox1.Text ;)

Das Füllen war damit wohl eher nicht gemeint :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm, was mache ich falsch? :confused:

Wenn ich in der ersten Edit was eintrage und einen Eintrag im Tree selektiere und dann das gleiche mit der Edit2, dann ist alles in Ordnung! Es wird alles richtig angezeigt!

Aber wenn ich in der Edit1 die erste DB eintrage, in der 2ten Edit die 2te DB und führe es dann aus, stehen in beiden Trees die gleiche DB!

Was kann ich machen, das ich, egal in welcher Reihenfolge ich die DB auswähle, das richtige Ergebnis angezeigt bekomme? :confused:

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klar habe ich ein Code! ;)

procedure TForm1.Button3Click(Sender: TObject);

begin

TreeView1.Items.Clear;

AddTreeNodes;

WilleDatabase.Connected := False;

try

WilleDatabase.ConnectionName := Edit1.Text;

WilleDatabase.Connected := true;

except

on E: Exception do ShowMessage(E.Message);

end;

end;

Ich habe es erstmal so gemacht, das ich per ButtonClick die DB aus dem Edit in den TreeView übergebe! Deshalb das AddTreeNodes!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...