webForumDet fria alternativet

mismatch ibland

5 svar · 219 visningar · startad av Method

MethodMedlem sedan apr. 2001357 inlägg
#1

Min sql:
INSERT INTO tblWinningTicket (fld_WinTicketNumber, fld_LotteryID) VALUES (4654654654646, 1)

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/visa/admin/winningNo.asp, line 176


intLottery = Request.Form("frmLottery")
intWinno = Request.Form("frmWinNo")

If Request.QueryString("perform") = "addNumber" Then
					
	SQL = "INSERT INTO tblWinningTicket " &_
	" (fld_WinTicketNumber, " &_
	" fld_LotteryID) " &_
	" VALUES " &_
	" (" & int(intWinno) & "," &_
	" " & int(intLottery) & ")"

	Response.Write "sql:<br> " & SQL & "<br><br>"			
	
	objconn.Execute(SQL)
						
	Response.Redirect("winningno.asp")
End if

Varför blir det bara så när man har 11 siffror eller mer? går det inte att ha fler siffror

båda fälten är tal och långt heltal i access 2002

Sen en bifråga hur kommer det sig att första nollan försvinner om man skriver tex 0708

Tackar

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Nej tal större än 2^32 - 1 går inte att lagra med 4 byte.

Om du använder varchar(15) t.ex så slipper du det andra problemet också.

Flyttas från ASP

MethodMedlem sedan apr. 2001357 inlägg
#3

Men kan jag jämföra ett varchar(15) till att jämföra mot talfält i andra tabeller?

varchar(15) är det samma som text?

mvh

jonas

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Det borde väl gå om du trixar lite: cint("textfältet") + intfältet

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Du får använda varchar i dom tabellerna också eftersom det är samma typ av värden du vill kunna lagra väl.

Engine^Medlem sedan dec. 20003 887 inlägg
#6

Annars går det att använda double för att lagra dom stora talen.

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