Avatar billede fedtoere Praktikant
21. oktober 2007 - 19:55 Der er 4 kommentarer og
1 løsning

Jeg får følgende fejl: could not convert variant into String

Jeg programmerer i Delphi.
Jeg har en Access Database.
Jeg har benyttet ADOTable, TDataSource og DBGrid for at hente data fra databasen.
Jeg benytter så TDBText for at vis mine data i programmet.

Men når jeg compilerer det får jeg følgende fejl:

  Project navn.exe raised exception class EVariantTypeCastError
  with message 'could not convert variant of type (Null) into
  type (String). Process stopped. Use Step or Run to continue.

Jeg fatter ikke helt hvor denne fejl optræder, hvad den skyldes.
Formegentlig ligner det noget pointer (type Null) som ikke kan oversættes til en String !

Kan du hjælpe mig med dette problem ?
Avatar billede fedtoere Praktikant
21. oktober 2007 - 19:57 #1
Er det opsætning i mit debugger program ?
Jeg får kun denne fejl når jeg kører programmet fra Delphi, hvis jeg bruger min *.exe fil alene så kører programmet fint.
Avatar billede hrc Mester
21. oktober 2007 - 21:32 #2
Enten modificér din tabel til ikke at indeholde NULL værdier.

Hvis fejlen sker i noget kode hvor du laver noget lignende dette: eNavn.Text := Query.FieldByName('navn').Value, har du flere muligheder:

1. Enten kan du tjekke om feltet er null

  eNavn.Text := '';
  if not Query.FieldByName('navn').IsNull then
    eNavn.Text := Query.FieldByName('navn').Value;

2. Du kan droppe Value og benytte goe gamle AsString (som konverterer null til '')

  eNavn.Text := Query.FieldByName('navn').AsString;

Kan i øvrigt anbefale dig at installere Madshi da dens bugreport giver meget god information om hvor fejlen opstod (den angiver endda linjenummeret i filen)
Avatar billede fedtoere Praktikant
19. juni 2008 - 13:10 #3
hrc, desværre kan jeg ikke huske udgangen på dette spørgsmål.
Men nu virker det så mon ikke dit svar har været brugbart.

hvis du smider et svar får du point.
Avatar billede hrc Mester
19. juni 2008 - 14:08 #4
OK. Du kan i øvrigt inkludere Variants i din unit og så spørge på varianten i stedet:

  if Query.FieldByName('navn').Value = Null then
    ..
Avatar billede fedtoere Praktikant
20. juni 2008 - 13:45 #5
Endnu engang mange tak for din hjælp
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester