Announcement

Collapse
No announcement yet.

EVariantError wegen der NULL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • EVariantError wegen der NULL

    Schönengutentagallerseits,

    ich bin IBX-Newbie mit folgendem Problem:

    wenn ich mir von einer IB-Tabelle ein Datenelement "reinziehe",
    z.B.

    aText:=IBQuery1.FieldValues['A_TEXT']; //aText : String; A_Text ist Varchar(10)

    so geht das nur gut, wenn in der aktuellen A_TEXT-Spalte was drinsteht. Ist es NULL, hagelts den EVariantError

    Frage: gibts eine Möglichkeit, Feldelemente vorher auf NULL abzufragen? Die Methode
    IBQuery1.IsEmpty() oder so scheint es leider nicht zu geben - oder vielleicht irgendwie doch...?

    Leider muß ich solche Tabellen führen, die nicht gerade unbedingt der 3. Normalenform genügen
    (ich hab die Struktur nicht entworfen, ich muß nur damit leben!) und bevor ich zehntausende
    von Einträgen von Hand mit Leerzeichen fülle und dann die Spalten als NOT NULL umwandle...

    Any help would be gratly appreceated...

    Roland.

  • #2
    Hallo,

    über die Eigenschaft <b>RecordCount</b> kann man nachsehen, ob mindestens 1 Datensatz vorhanden ist. Einfacher geht es, wenn persistente TField-Instanzen für die Spalten über den Feld-Editor angelegt werden. In diesem Fall greift man direkt über den Namen der jeweiligen TField-Instanz zu

    Comment


    • #3
      Vielen Dank!

      Daß ich (mehr als) einen Datensatz habe, weiß ich schon. Und einen
      Feld-Editor hab ich (in diesem Kontext)nicht, die Probelematik ist nämlich Teil
      einer Delphi-Konsolenanwendung zwecks Online-Übernahme v. Meßergebnissen d.h. keine visuellen Komponenten..

      Comment


      • #4
        Hallo,

        auch in einer Konsolenanwendung oder einer DLL kann man ein Datenmodul einbauen und somit auf die Vorteile der visuellen Anwendungsentwicklung zurückgreifen. Ein Datenmodul ist doch eine ganz normale Unit, die nur innerhalb von Delphi "anders" aussieht.

        Auf die TField-Instanzen kann auch zur Laufzeit (ohne persistente TFields) zugegriffen werden. Und dann stehen die TField-Methoden <b>IsNull</b> oder <b>AsString</b> etc. zur Verfügung

        Comment


        • #5
          Merci vielmals, das wars

          Comment

          Working...
          X