Announcement

Collapse
No announcement yet.

Ungültige Variant Typumwandlung

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

  • Ungültige Variant Typumwandlung

    Hallo,

    Ich erhalte in meinem Delphi-4 Programm beim Anklicken einer DBLookupCombobox (Interbase-Tabelle) die Meldung "Ungültige Variant-Typumwandlung" (Exception der Klasse EVariantError).

    Es wird gar keine Variant-Typumwandlung meinerseits vorgenommen ! Ich kann auch keine debuggen.

    Was geht hier vor ?

    <b>Ein weiteres Problem:</b>

    Normalerweise nehme ich Typumwandlungen wie folgt vor:

    Stringvariable := Tabelle.FieldByName('FeldName').AsString o.a.

    Bei den empfohlenen Umwandlungen per Value, wie
    Stringvariable := Tabelle['FeldName']

    erhalte ich auch öfters die Meldung "Ungültige Typumwandlung", welches mir vollkommen schleierhaft ist, da die Variablen jeweils dem gleichen Typ entsprechen, z.B. String, Integer o.a.

    Ich verwende deshalb die langsamere, aber etwas sicherere Methode FieldByName.

    Gruss aus Wien
    Helmut

  • #2
    Hallo Helmut,

    diese Fehlermeldung wird ausgelöst, wenn das jeweilige Feld keinen Wert enthält/leer ist. Diesem Wert NULL "versteht" Delphi nicht. Der Fehler kann über einen <b> try except - Block "abgefangen" werden.

    <pre>
    try
    Stringvariable := Tabelle['FeldName'];
    except Stringvariable := '';
    end;
    </pre>

    Tschüß

    Torste

    Comment


    • #3
      <p>Hallo,<br>
      <br>
      dass Delphi keine NULL-Werte versteht, stimmt so nicht ganz.<br>
      TField besitzt die Eigenschaft <b>IsNull</b>, mit der man ermitteln kann,<br>
      ob das Feld einen Wert enthält oder nicht.<br>
      <br>
      Gruß Thomas</p&gt

      Comment


      • #4
        <PRE>Hallo,

        Man könnte natürlich auch auf <B>Null-Wert</B> vergleichen:

        <B>if DataSet['Feldname']<>Null then begin
        .
        .
        .
        end;
        usw.

        Gruß Jürgen</PRE&gt

        Comment

        Working...
        X