webForumDet fria alternativet

storlek på integer-parameter

9 svar · 440 visningar · startad av Calevan

CalevanMedlem sedan maj 20031 173 inlägg
#1

Hej!

Sitter och kollar lite på mina parametrar jag använder för att göra mina SQL frågor.

när jag ska lägga till en parameter med en textsträng så gör jag såhär:

Command.Parameters.Append(Command.CreateParameter("strText", adVarChar, adParamInput, 10, strText))

den texten kan altså inte bli större än 10 tecken. men hur gör jag för tal? Dvs hur specar jag storleken? En integer kan ju ta stora tal, men kodas ju i 4 bitar (vad det nu betyder...)

dvs, om jag vill ha ett tal som ska vara max 5 siffror, vad anger jag då för storlek? just nu har jag bara lämnat det fältet tomt, men det känns ju lite dumt:

Command.Parameters.Append(Command.CreateParameter("ID", adInteger, adParamInput,, strId))

hur hanterar man det?

tack!

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vadå? Jag förstår inte vad du vill åstadkomma.

Om du anger adInteger så är storleken 4 bytes.

CalevanMedlem sedan maj 20031 173 inlägg
#3

ok, men vilken siffra kan man skriva där jag lämnat tomt nu då? integer går ju upp (och ner) till 2147483647, säg att jag vill att talet inte ska kunna överstiga 1000, vad gör jag då?

tack!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är inte relevant att ange size för en integer. Om du vill kontrollera att en parameter inte överstiger ett visst värde så får du kontrollera det explicit i ditt skript.

CalevanMedlem sedan maj 20031 173 inlägg
#5

inte relevant som i att det inte går? men det låter som du har en bra lösning där ja. tack för den, då återstår bara, ska jag skriva in någon siffra i raden

Command.Parameters.Append(Command.CreateParameter("ID", adInteger, adParamInput,, strId))

eller kan jag inte göra det?

tack!

doggelitoMedlem sedan juni 20003 076 inlägg
#6

http://devguru.com/Technologies/ado/quickref/command_createparameter.html
läs stycket size. :)

om du bara behöver lagra max 5 tecken så kan du väl byta till adSmallInt också, kanske även tinyint (kommer inte ihåg tinyints gräns).

CalevanMedlem sedan maj 20031 173 inlägg
#7

har gjort det, men förstod nog inte helt då. är int en "variable-length data type"? och om jag då inte anvgivit något värde så borde det betyda att jag har default vilket är "0" vilket gör att jag förstår ännu mindre... vad anger size för en integer egentligen? Lars sa ju att det inte var relevant, men hur den kan vara noll förstår jag inte alls :(

tack för att ni har tålamod och försöker förklara

doggelitoMedlem sedan juni 20003 076 inlägg
#8

size ignoreras helt enkelt när du använder en integer eftersom storleken är förutbestämd från början.
alla som börjar med var... är av obestämd längd och måste då specas separat. ok?

GuffaMedlem sedan juni 2004533 inlägg
#9

Nej, en int är inte en typ med valbar längd. Alltså ska du inte ange någon längd.

Värdet noll betyder helt enkelt att värdet är irrelevant.

CalevanMedlem sedan maj 20031 173 inlägg
#10

ah! nu börjar det klarna! tackar, ni är bäst! :birp

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)