AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi .Isnull liefert true trotz Werte in DB
Thema durchsuchen
Ansicht
Themen-Optionen

.Isnull liefert true trotz Werte in DB

Ein Thema von PhilmacFLy · begonnen am 28. Feb 2012 · letzter Beitrag vom 29. Feb 2012
Antwort Antwort
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#1

.Isnull liefert true trotz Werte in DB

  Alt 28. Feb 2012, 16:33
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos 6.6.6
Moin Dp

Ich hab folgendes Problem, ich lasse folgenden Code laufen:
Delphi-Quellcode:
 with ZReadOnlyQuery1 do
    begin
      SQL.Text := 'Select ID_Messmodus From Messungen Where ID_Mess = :id';
      Params.ParamByName('id').AsInteger := Frm_Messung.lmess[0];
      Open;
      messmodus := FieldbyName('ID_Messmodus').AsInteger;
      Close;
      //messmodus := 5;
      SQL.Text := 'Select * from Analyseanzeige where ID_Messmodus = :mo';
      Params.ParamByName('mo').AsInteger := messmodus;
      Open;
        if FieldbyName('Belastung').IsNull then
          begin
            aktionenb := true;
            belastungb := true;
            koordinationb := true;
            schwankungb := true;
            kraftib := true;
            symmetrieib := true;
          end
        else
          begin
            aktionenb := FieldbyName('Aktionen').AsBoolean;
            belastungb := FieldbyName('Aktionen').AsBoolean;
            koordinationb := FieldbyName('Aktionen').AsBoolean;
            schwankungb := FieldbyName('Aktionen').AsBoolean;
            kraftib := FieldbyName('Aktionen').AsBoolean;
            symmetrieib := FieldbyName('Aktionen').AsBoolean;
            showmessage(booltostr(aktionenb, true));
          end;
    end;
Jetzt liefert mir die Abfrage auf IsNull immer true obwohl werte bei der id stehen die in messmodus steht.
Ich habs mit fester Messmodus Id probier, ich hab probiert im Statement eine feste ID reinzuschreiben, und ich habs ohne '*' probiert immer wieder das selbe Ergebniss, ich hab einfach keine Idee mehr worans liegen könnte.
Hier noch ein Screenshot von der DB:
http://www.abload.de/img/dbauszug88up0.png
Wäre sehr froh wenn mir jemand von euch helfen könnte.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: .Isnull liefert true trotz Werte in DB

  Alt 28. Feb 2012, 17:20
Jetzt liefert mir die Abfrage auf IsNull immer true obwohl werte bei der id stehen die in messmodus steht.
Du musst auch das richtige Feld testen; z.Zt. testest du das Feld Belastung.
Delphi-Quellcode:
begin
  // Warum wird hier immer nur das Feld "Aktionen" ausgelesen?
  aktionenb := FieldbyName('Aktionen').AsBoolean;
  belastungb := FieldbyName('Aktionen').AsBoolean;
  koordinationb := FieldbyName('Aktionen').AsBoolean;
  schwankungb := FieldbyName('Aktionen').AsBoolean;
  kraftib := FieldbyName('Aktionen').AsBoolean;
  symmetrieib := FieldbyName('Aktionen').AsBoolean;
  showmessage(booltostr(aktionenb, true));
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: .Isnull liefert true trotz Werte in DB

  Alt 28. Feb 2012, 18:07
Ich geh mal davon aus,daß er ungeschickt formuliert hat.
Wahrscheinlich ist er schon mit dem Debugger durch seinen Code gegangen und is immer im ".IsNull-Zweig" gelandet!?

Was passiert denn wenn Du auf "notnull" (1) prüfst?
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (28. Feb 2012 um 18:08 Uhr) Grund: tippfehler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: .Isnull liefert true trotz Werte in DB

  Alt 28. Feb 2012, 20:11
Hallo,

hm, vielleicht ein Problem mit ZEOS ?
waa ist, wenn du auf

AsString('Belastung').AsString=''

prüfst ?


Heiko
Heiko
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#5

AW: .Isnull liefert true trotz Werte in DB

  Alt 28. Feb 2012, 22:46
Entweder Bug in ZEOS oder deine Query liefert keine Ergebnismenge. Ich sehe z.B. auch keinen Datensatz für ID_Messmodus = 5 (laut deinem Kommentar im Quellcode) in deinem Screenshot.
  Mit Zitat antworten Zitat
HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: .Isnull liefert true trotz Werte in DB

  Alt 29. Feb 2012, 07:46
Hallo,

nimm ein DBGrid und hänge es auf ZReadOnlyQuery1. Dann siehst du, ob Daten gelesen werden. Wenn ja - Rätsel, wenn nein stimmt irgend was mit der DB-Abfrage nicht.
LG, HiWieGehts
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: .Isnull liefert true trotz Werte in DB

  Alt 29. Feb 2012, 07:51
Welchen Wert hat 'Frm_Messung.lmess[0]'?
Was liefert die Query 'Select ID_Messmodus From Messungen Where ID_Mess = :id'?

Prüfe doch auch noch, ob die Analyseanzeige-Query überhaupt eine Ergebnismenge zurückliefert.

Und wieso erschlägst Du das nicht mit einer einzigen Query?
Code:
select A.* 
  From Analyseanzeige A
       join Messmodus M on A.ID_Messmodus = M.ID_Messmodus
where M.ID_Mess = :id
Dann kannst Du für bestimmte 'id' Werte deine Query zunächst in der SQL-Konsole testen (IBExpert, nehme ich an).
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#8

AW: .Isnull liefert true trotz Werte in DB

  Alt 29. Feb 2012, 09:40
Das Problem war viel einfacher, ich hatte vorher keine einstellung an die ZConnection geliefert
Ich war mir eigentlich sicher das ich das vorher gemacht hatte, aber die anderen SQL Abfragen hab ich über eine Connection und einem Query auf einer anderen Form abgewickelt. Fragt mich nur nicht warum.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz