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
Saga Geschrieben 27. August 2002 Autor Geschrieben 27. August 2002 Vergesst es, Leute...hab die Lösung gefunden. Thx anyway.
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.
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;
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
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 ?
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"
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.
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...
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".
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.
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.
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
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 ?
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden