Zum Inhalt springen

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


Saga

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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"

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...