Nausi Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Hallo ihr! Ich habe ein Problem in Dephi Im FormShow Ereignis habe ich eine SQL-Abfrage über Oracle-Query (extra Komponente). Die Abfrage wäre: select b.typ from power.bewertung b where b.typ <> ' ' dm_bewertung.ods_fragen.acitve := true; dann nehme ich den ersten Datensatz mit: dm_Bewertung.ods_fragen.first; und dieser wird in einem Feld ausgegeben, dieses Feld hat als DataSource: dm_Bewertung.ds_fragen und als DataField: Typ. Beim ersten Versuch funktioniert das alles , gehe ich aber jetzt her und schließe das Formular und öffne es wieder bringt meine SQL-Abfrage keinen Wert zurück (zumindest wird kein wert in meinem Feld angezeigt. Ich habe im OnClose Ereignis die dm_bewertung.ds_fragen.active := false gesetzt. Trotzdem funktioniert es nur beim ersten mal, woran liegt das? Wie kann ich den Wert den mir die SQL-Abfrage liefert in eine Variable speichern, damit ich ihn mir anschauen kann. Ich sehe ihn ja erst im Feld dbed_typ und das ist beim zweiten Versuch leer. Ich hoffe ihr könnt mir helfen Eure Nausi Zitieren
Uruz Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 schliesst du auch die verbindung zur Datenbank im form.close ? wenn ja, dann solltest du die im form.create auch wieder oeffnen... bzw. im "neuen" form.create muesstest du auch wieder dm_bewertung.ds_fragen.active := true [/PHP] setzen uruz Zitieren
Nausi Geschrieben 1. August 2002 Autor Geschrieben 1. August 2002 Ja natürlich mache ich das! Ich habe anfangs nur die OracleDataSource geschlossen und geöffnet -> mein Problem war da Und inzwischen schließe ich die dm_verbindung. Also: dm_verbindung.connected := false; und beim starten wieder dm_verbindung.connected := true; Aber ich probier jetzt mal noch was passiert wenn ich das ganze Formular der Verbindungen schließe, was ich ja eigentlich nicht möchte, da das die Sache relative langsam machen würde, na und sonst bleibt mir nur eins übrig: ich muss mein Verbindungsobjekt direkt auf das Formular setzen... aber ich probier das jetzt mal alles und sag dann wieder beischeidt Euere Nausi:rolleyes: Zitieren
fireworker Geschrieben 1. August 2002 Geschrieben 1. August 2002 Setz doch Datasource auf Nothing und dann wieder auf Deine Vebindung. Ich kenne mich zwar in Delphi nicht aus, aber so muß ich es in VB machen. Zitieren
Nausi Geschrieben 1. August 2002 Autor Geschrieben 1. August 2002 Also wenn ich hergehe und DataModule1.destroy bekomme ich die immer die richtigen Daten, nur leider verstehe ich immer noch nicht wieso! Wieso reicht es denn nicht wenn ich die dm_verbindung.ods_fragen.active und dm:verbindung.connected auf false setze?? Das mit dem Nothing funktioniert leider auch nicht! Eure Nausi;) Zitieren
webpredator Geschrieben 3. August 2002 Geschrieben 3. August 2002 Ich arbeite eigentlich nur mit "Open;" und nicht mit "Active := True;", versuch das doch mal. also nicht: dm_verbindung.ods_fragen.Active := True; sondern: dm_verbindung.ods_fragen.Open; Laut Delphi macht das dasselbe, aber ich bin mir da nicht so sicher, ich hab da auch schon Probleme mit gehabt. Außerdem würde ich nach dem Open, wenn er nix anzeigt, nochmal ein Refresh hinterherschieben. dm_verbindung.ods_fragen.Refresh; Allerdings kenne ich die Oracle Komponenten nicht, also weiß ich nicht, ob das geht. Ich benutze ADO. cu 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.