AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Prüfen auf NULL oder Inhalt
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen auf NULL oder Inhalt

Ein Thema von sirius · begonnen am 4. Mai 2010 · letzter Beitrag vom 4. Mai 2010
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Prüfen auf NULL oder Inhalt

  Alt 4. Mai 2010, 13:12
Datenbank: Oracle • Version: 11 • Zugriff über: Direct Oracle Access
Ich übergebe an eine Stored Procedure verschiedene Werte, u.a. auch zwei Strings( =Varchar2), welche auch mal leer sein können.
DOA übersetzt diesen Parameter (bei DeclareAndSet) dann auch gleich zu NULL. Die Query sieht so aus:
SQL-Code:
begin
  addTraffic(:Zeit,:SrcIP,:DestIP,:Traffic);
end;
SrcIP und/oder DestIP können leer sein, wenn es eben keine IP gibt. In der SP wird nach verschiedenen Überprüfungen etwas in die Tabellen eingetragen. Eine Überprüfung sieht folgendermaßen aus:
SQL-Code:
Select count(id_zeit) into n from dbt_traffic
      where id_Zeit=id
      and SrcIP=aSrcIP --SrcIP ist ein Spaltenname, aSrcIP ist der übergebene Parameter
      and DestIP=aDestIP;
-- hier wird abhängig von n ein Event (dbms_alert) ausgelöst
Und dummerweise ergibt der Ausdruck "Null=Null" --> FALSE. Das bedeutet, obwohl es bspw eine Zeile SrcIP gibt, die NULL ist und aSrcIP auch Null, wird diese Zeile nicht gefunden (die anderen Bedingungen gibt es).

Wie kann ich das umgehen? Die Stored Procedure ist auch die einzige, die die entsprechenden Tabellen füllt, weswegen ja auch erst das NULL in die Tabellen kommt, was mich, bis auf obiges Problem auch nicht stört.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: Prüfen auf NULL oder Inhalt

  Alt 4. Mai 2010, 13:22
Könntest Du die beiden Werte nicht einfach explizit gegen NULL prüfen?
SQL-Code:
...
where id_Zeit=id
      and (SrcIP=aSrcIP) or
      (SrcIP IS NULL and aSrcIP IS NULL)
So ähnlich zumindest.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Prüfen auf NULL oder Inhalt

  Alt 4. Mai 2010, 13:34
Oh man, das war ja wieder zu billig.

Merci Vielmahls.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 17:40 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