Öhm... det är väl du som i din kod ska kolla om värdet är tillåtet?
Det ligger inte inom ADODB.Command-objketets domäner att kolla huruvida databasdesignen tillåter dom data som din kod säger åt det att skicka.
3 svar · 317 visningar · startad av pg
Hej
Jag har databas-tabeller där jag använder SMALLINT UNSIGNED och TINYINT UNSIGNED och som jag uppdaterar med ADODB.Command Prepared statement. Eftersom smallint är begränsad till 32767 och timyint till 255 så genererar ADODB ett fel om man försöker skicka värden som ligger utanför detta.
Så min fråga är, kan man få ADODB.Command att kontrollera värdena och automatiskt justera felaktiga sådana?
Tack på förhand för ev. svar. /PG
Öhm... det är väl du som i din kod ska kolla om värdet är tillåtet?
Det ligger inte inom ADODB.Command-objketets domäner att kolla huruvida databasdesignen tillåter dom data som din kod säger åt det att skicka.
I och för sig inte svårt men jag vill helst slippa kolla själv.
Men felet verkar uppstår i själva Command-objektet trots att jag deklarerat parametern med....
Com.Parameters.Append Com.CreateParameter("MySmallInt", 2, 1, 2, nSmallInt)
[adSmallInt 2 2-byte signed integer]
Om jag kör samma SQL med ADODB.Connection Execute så justerar databasen (MySQL) själv värdet.
Så man tycker det borde finnas något sätt för Command-objektet att validera värdena.
Angående SMALLINT UNSIGNED så läste jag fel, det kan ha värden mellan 0-65535. Sorry! /PG
Ooops -nu skrev jag fel igen...
Com.Parameters.Append Com.CreateParameter("MySmallInt", 18, 1, 2, nSmallInt)
[adUnsignedSmallInt 18 2-byte unsigned integer]
..ska det vara
/PG