TroxyMedlem sedan mars 20041 505 inlägg Hej. Jag har ett recordset hämtat ur en MySQL-databas som innehåller lite fält av typen tinyint(1).
Problemet i mitt fall är att om jag försöker jämföra talet i mitt recordset med ett annat tal så blir det fel. Exempel:
if member("status")=1 then
Denna rad ger felet: "Type mismatch".
Men det fungerar om jag typkonverterar:
if cInt(member("status"))=1 then
Detta störande lilla problem inträffar dock endast om jag sätter CursorLocation till 3.
Har någon varit med om detta tidigare?
TroxyMedlem sedan mars 20041 505 inlägg Okej, pust. Eftersom detta problem inte var så populärt, hehe, så har jag själv grävt djupt ner i detta och hittat en förklaring.
Hoppas iaf att någon fattar detta:
Mitt problem uppstod pga. att en av mina kolumner i MySQL-databasen var av typen TinyInt(1).
* Om jag låter pekaren i ett RecordSet vara på serverns sida (CursorLocation=2) så konverteras en TinyInt till en Int automatiskt. (Varför?)
* Om jag istället låter pekaren vara på klientens sida (CursorLocation=3) så förblir det en TinyInt och måste manuellt koverteras till en Int med hjälp av funktionen cInt().
Nu undrar jag bara: Varför uppstår dessa skillnader mellan datatyper och pekare, och kan man fixa det på något sätt?