DerWolf Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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 Zitieren
Pointerman Geschrieben 19. Februar 2003 Geschrieben 19. Februar 2003 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! Zitieren
DerWolf Geschrieben 19. Februar 2003 Autor Geschrieben 19. Februar 2003 Danke! Mein Chef sagt, keine Session benutzen! *grrr* Wir benutzen eigene Packages! Aber ich denke, in der Art wird es funktionieren. Habe es fast genau so! MfG Zitieren
DerWolf Geschrieben 20. Februar 2003 Autor Geschrieben 20. Februar 2003 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 Zitieren
Pointerman Geschrieben 20. Februar 2003 Geschrieben 20. Februar 2003 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... Zitieren
DerWolf Geschrieben 20. Februar 2003 Autor Geschrieben 20. Februar 2003 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 Zitieren
Pointerman Geschrieben 20. Februar 2003 Geschrieben 20. Februar 2003 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... Zitieren
DerWolf Geschrieben 20. Februar 2003 Autor Geschrieben 20. Februar 2003 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? Zitieren
geloescht_JesterDay Geschrieben 20. Februar 2003 Geschrieben 20. Februar 2003 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? 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 ). 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. Zitieren
DerWolf Geschrieben 20. Februar 2003 Autor Geschrieben 20. Februar 2003 Hm, ich wollte es ja mit ComboBox1.Items.Add(xxx) machen. Mir wird aber nichts angezeigt! Mit DriverName habe ich es aber noch nicht ausprobiert! Mal schauen, ob ich damit mehr Erfolg habe! MfG Zitieren
DerWolf Geschrieben 20. Februar 2003 Autor Geschrieben 20. Februar 2003 Mal`ne entscheidende Frage? Ein Kollege sagte mir gerade, ich solle es mal nur zum Test mit nem Editfeld ausprobieren! Wenn die Funktion steht, wäre es kein Problem, das auch für die ComboBox zu schreiben! Jetzt bin ich erst recht :confused: MfG Zitieren
geloescht_JesterDay Geschrieben 20. Februar 2003 Geschrieben 20. Februar 2003 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 Zitieren
DerWolf Geschrieben 21. Februar 2003 Autor Geschrieben 21. Februar 2003 Jepp, so war das gemeint! Mit den Editfeldern habe ich das ja schnell hinbekommen, somit sollte es dann auch nicht mehr das Problem sein, es mit den Combos zu machen. Hoffe ich MfG Zitieren
DerWolf Geschrieben 21. Februar 2003 Autor Geschrieben 21. Februar 2003 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 Zitieren
Der Kleine Geschrieben 21. Februar 2003 Geschrieben 21. Februar 2003 Um hier nicht total verwirrt zu werden : Haste mal nen Code? Zitieren
DerWolf Geschrieben 21. Februar 2003 Autor Geschrieben 21. Februar 2003 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! Zitieren
Empfohlene Beiträge
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.