Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi could not convert variant of type (null) into type (s (https://www.delphipraxis.net/48821-could-not-convert-variant-type-null-into-type-s.html)

xaverras 30. Jun 2005 22:20

Datenbank: mysql • Version: 4.10x • Zugriff über: zeos

could not convert variant of type (null) into type (s
 
Hallo,

schreibe ich eine Anwendung die auf mysql zugreift. Da sind mehrere Tabelle und query, wenn das Programm ausführe
bekomme ich diese Fehlermeldung:

could not convert variant of type (null) into type (string)

mehr nicht, ich weis weder was das heißt noch von welche query kommt.

Wie kann ich es rausfinden?

Grüße.

Xaver

Minz 1. Jul 2005 01:36

Re: could not convert variant of type (null) into type (s
 
was ist Zeos? Ist das das Programm welches du ausführst woraufhin dann die Fehlermeldung kommt?

Grundsätzlich bedeutet die Fehlermeldung dass du versuchst eine Variable eines bestimmten Typs in eine andere Variable umzuwandeln, welche nicht kompatibel sind oder so ähnlich

hier vermutlich eher:
du hast eine Variable vom Typ Variant, der du noch keinen bestimmten Typ zugeordnet hast, Variant ist noch nicht festgelegt und kann verschiedene Variablen-Typen annehmen

Im Laufe des Programms versuchst du den Inhalt deiner Variant-Variable in einen String umzuwandeln oder in eine Variable/Datenfeld des Typs String zu schreiben.

Da Variant den Typ (null) (Fehlermeldung) aufweist, wurde der Typ der Variant-Variable also noch nicht festgelegt, somit vermutlich noch kein bestimmter Inhalt zugewiesen.

Aus nichts kannst du nicht irgendetwas machen :mrgreen:

Vielleicht hilft dir das weiter, wo jetzt der Fehler genau liegt, kann ich dir nicht sagen, ich kenne weder Zeos, noch deine Anwendung, noch deine Datenbank, noch deine Abhängigkeiten und Verknüpfungen - ich kenne nur deine Fehlermeldung, mehr konnte ich da nicht rausholen :duck:

dizzy 1. Jul 2005 01:50

Re: could not convert variant of type (null) into type (s
 
Zitat:

Zitat von xaverras
could not convert variant of type (null) into type (string)

Das bedeutet, dass du z.B. ein VARCHAR-Feld aus einer Tabelle liest, dass keinen Eintrag hat, also NULL. Dieses versuchst du direkt in einen String zu wandeln. Besser wäre dann erst in eine Variant-Variable einzulesen, und die Umwandlung erst nach erfolgloser Prüfung auf NULL zu machen. Andere Variante: Definiere das Feld in deiner Tabelle mit dem Flag "notnull" - nur dann MUSS jede Zelle da befüllt werden, was je nach Zweck auch hinderlich sein kann.

Zitat:

Zitat von xaverras
mehr nicht, ich weis weder was das heißt noch von welche query kommt.
Wie kann ich es rausfinden?

Durch debuggen. Es gibt hier vom User MaBuSe ein schönes Tutorial zum debuggen (falls du da noch nicht so firm bist), nachdem es sich lohnt zu suchen (Hier im Forum suchendebugging tutorial ;))


Schönen Gruss,
Fabian

shmia 1. Jul 2005 11:07

Re: could not convert variant of type (null) into type (s
 
Zitat:

Zitat von dizzy
Das bedeutet, dass du z.B. ein VARCHAR-Feld aus einer Tabelle liest, dass keinen Eintrag hat, also NULL. Dieses versuchst du direkt in einen String zu wandeln. Besser wäre dann erst in eine Variant-Variable einzulesen, und die Umwandlung erst nach erfolgloser Prüfung auf NULL zu machen.

Man muss nicht unbedingt prüfen:
Delphi-Quellcode:
var
   daten : string;
begin
   daten := query1['daten'];             // macht Problem, wenn Feld NULL ist
   daten := query1.FieldValues['daten']; // dito
   
   daten := query1.FieldByName('daten').AsString; // funktioniert ohne Probleme

xaverras 1. Jul 2005 19:54

Re: could not convert variant of type (null) into type (s
 
Hallo,

danke für die Hilfe, jetzt geht.

Xaver


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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