Saga Geschrieben 27. August 2002 Geschrieben 27. August 2002 Hi Leuts, die Hitze bekommt mir net...ich steh grad maechtig auf'm Schlauch. Ich hab hier ne SQL-Anweisung, die in eine Variable gespeichert wird. with CreateHstmt do begin try sSQL:= 'select bla bla' end; So, nu hab ich auch noch ein paar Labels, denen ich eine neue Caption verpassen muss und zwar muss diese Caption der Wert aus dem zugehörigen Feld der Abfrage sein. Das soll dann so aussehen: procedure blablubbbeforeprint() begin QRLabLabel := TQRLabel(FindComponent('QRLabLabel')); QRLabLabel.Caption := ??? ; end; Ich weiss nur nimmer wie ich das jetzt zuweisen muss. Help!? Plz! Saga Zitieren
Saga Geschrieben 27. August 2002 Autor Geschrieben 27. August 2002 Vergesst es, Leute...hab die Lösung gefunden. Thx anyway. Zitieren
byte Geschrieben 27. August 2002 Geschrieben 27. August 2002 Auflösung für Referenzzwecke wär aber auch schön. Dann mus nächstesmal nicht wieder jemand so eine Frage stellen. Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von byte Auflösung für Referenzzwecke wär aber auch schön. Dann mus nächstesmal nicht wieder jemand so eine Frage stellen. Hast recht. Ich hab Variablen deklariert, sie in einen Record geschrieben und dann einfach in dem BeforePrint-Ereignis die Variablen zugewiesen. recordAS.sText := ColStringByName['DBFeld']; Und dann unten im BP-Ereignis ...Label.Caption := sText; Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 So, nu hab ich aber noch ein anderes Problem. Wollte das nur der Übersicht halber nicht in das vorherige Post schreiben. Ich hab eine Variable dtAuftrag : TDate; deklariert. Dieser Variable will ich in meinem Record den Wert aus dem zugehörigen Tabellenfeld zuweisen. Wenn ich es allerdings so recordAS.dtAuftrag := ColDateByName['Auftragsdatum']; schreibe bekomme ich beim compilieren eine Zugriffsverletzung und die gesamte Unit schiesst sich ab. Wieso funktioniert das nicht?? Habe schon die Variation ColTDateByName versucht...Fehlanzeige. Und bei allem anderen werde ich natuerlich angemault, dass die Datentypen nicht kompatibel sind. Falls irgendjemand eine Lösung hat dann bitte asap melden, mein Kollege und ich verzweifeln hier bald! Thx! Saga Zitieren
byte Geschrieben 28. August 2002 Geschrieben 28. August 2002 Hab noch zwei Fragen : 1. Welche DatenBank benutzt ihr ? 2. Welchen DatenTyp hatte das Feld in der DB P.S. Könntest du evtl. noch irgendwie die Exception posten ? Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von byte Hab noch zwei Fragen : 1. Welche DatenBank benutzt ihr ? 2. Welchen DatenTyp hatte das Feld in der DB 3. Könntest du evtl. noch irgendwie die Exception posten ? 1) Sybase 8.0 2) Date 3) "Zugriffsverletzung bei Adresse 00831ED9 in Modul 'DCC.DLL' Lesen von Adresse 00000064" Zitieren
lpd Geschrieben 28. August 2002 Geschrieben 28. August 2002 Saga, versuch es mit einer Variablen vom Typ "TDateTime", dann dürfte die Zugriffsverletzung nicht mehr auftreten. Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von lpd Saga, versuch es mit einer Variablen vom Typ "TDateTime", dann dürfte die Zugriffsverletzung nicht mehr auftreten. Nein, das ist nicht das Problem, hab ich schon ausprobiert. Erstens bekomme ich dann angemeckert, dass das DB Feld vom Typ Date ist und zweitens wird die Exception durch "ColDateByName" ausgeloest. :confused: Vielleicht sollte ich das einfach umgehen und die Abfrage über FieldByName() machen... Zitieren
lpd Geschrieben 28. August 2002 Geschrieben 28. August 2002 Original geschrieben von Saga Vielleicht sollte ich das einfach umgehen und die Abfrage über FieldByName() machen... Die Methode "FieldByName" erfordert meines Wissens nach einen Typ, also Tabelle.FieldByName('Feld').AsTyp. Den Typ "Date" gibt es hier aber nicht; höchstens "DateTime". Zitieren
byte Geschrieben 28. August 2002 Geschrieben 28. August 2002 Versuche erstmal das ganze mit FieldByName(). Ansonsten ist Anhand der Exception zu erkennen, dass es sich um ein Speicherfehler und den sollte eigentlich nur der Record produzieren können. Da ich dein Code aber nicht kenne, kann ich dazu nicht mehr sagen. TDate repräsentiert den speziellen Typ eines TDateTime-Wertes ohne Dezimalstellen. Ein TDate-Wert gibt die Anzahl der Tage an, die seit dem 30.12.1899 vergangen sind. Hast du das mal mit der Beschreibung des Date Typs in der Sybase DB verglichen. Vielleicht passen die ja nicht einmal zueinanderen. Kenn mich leider mit Sybase nicht gut aus und auf der Homepage von denen hab ich auch nichts gefunden. Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von lpd Die Methode "FieldByName" erfordert meines Wissens nach einen Typ, also Tabelle.FieldByName('Feld').AsTyp. Den Typ "Date" gibt es hier aber nicht; höchstens "DateTime". Weiss ich, Schnucki. Hab's gerade probiert...ist ja kein Problem den Wert des Feldes als DateTime zu casten, dann kann ich auch noch in Ruhe mein DateFormat drueber hauen. Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von byte Versuche erstmal das ganze mit FieldByName(). Haben wir gerade probiert und es scheint zu gehen. Danke euch beiden! :e@sy Zitieren
lpd Geschrieben 28. August 2002 Geschrieben 28. August 2002 Original geschrieben von Saga Weiss ich, Schnucki. Hab's gerade probiert...ist ja kein Problem den Wert des Feldes als DateTime zu casten, dann kann ich auch noch in Ruhe mein DateFormat drueber hauen. Das weiß ich alles. Ich wusste nur nicht, ob du das weißt. Und lieber einmal etwas zuviel sagen, als einmal zuwenig, gell ? Zitieren
Saga Geschrieben 28. August 2002 Autor Geschrieben 28. August 2002 Original geschrieben von lpd Und lieber einmal etwas zuviel sagen, als einmal zuwenig, gell ? Ja, Herzchen. Thx! :e@sy 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.