Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Delphi...ich steh auf'm Schlauch :(

Empfohlene Antworten

Veröffentlicht

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

Auflösung für Referenzzwecke wär aber auch schön. Dann mus nächstesmal nicht wieder jemand so eine Frage stellen.

  • Autor
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;

  • Autor

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

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 ?

  • Autor
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"

  • Autor
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...

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".

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.

  • Autor
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. :)

  • Autor
Original geschrieben von byte

Versuche erstmal das ganze mit FieldByName().

Haben wir gerade probiert und es scheint zu gehen.

Danke euch beiden! :) :e@sy

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 ?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.