09. september 2001 - 18:03Der er
18 kommentarer og 3 løsninger
Hvad betyder CInt??
Jeg har lavet en database hvor man ved tryk på køb bliver sendt tilbage til default for at skrive adresse Jeg har først lavet databasen med produktnumre kun med tal og vil gerne skifte dem ud med både bogstaver og tal, men så får jeg denne besked: Microsoft VBScript runtime error \'800a000d\'
Type mismatch: \'CInt\'
/ludu/shop/eshop/Shopping/default.asp, line 316
Her er linjen der bliver omtalt. Der er altså noget galt hver gang jeg sætter et bogstav ind i produktnum.
AI gør cyberangreb hurtigere og billigere. HP's sikkerhedsekspert forklarer, hvorfor fokus skal flyttes fra detektion til forebyggelse og robusthed.
Slettet bruger
09. september 2001 - 18:13#1
Den konverterer Request.Querystring(\"item\") til et tal...og ikke en streng (tekst) som det er når du henter det der...
Synes godt om
Slettet bruger
09. september 2001 - 18:14#2
hovsa :) Og derfor kan du (logisk nok) ikke konveretere bogstaver til tal. Tag i stedet at lav iItemId i din database om til tekst, og så fjern CInt omkring querystringen...er du med? :)
Det har jeg gjort...nu får jeg: Vare Beskrivelse Antal Ændre antal varer Pris I alt ADODB.Recordset error \'800a0bcd\' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Jeg tror det har noget at gøre med at jeg skal konvertere til VB, men den mulighed har jeg ikke i Access. Mine produktnumre hedder RA10, så de er ikke for store
If you use numbers 1234.... then you should use number sthe the database. If you use AB110 then you MUST use text. So iItemID = CInt(Request.QueryString(\"item\")) should not be be used. Try iItemID = Request.QueryString(\"item\")
Du skal således ikke bruge cInt-funktionen, og du skal lave din tabel om til et tekstfelt, og alle referencer til dette felt skal nu bruge \"\'er omkring værdier !!!
Jeg har ændret det til tekstfelt og sat terrys linje ind i default, men jeg får stadig: ADODB.Recordset error \'800a0bcd\' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Her er koden..hmm..ved sgu ikke helt hvad jeg skal gøre. SQL = \"SELECT Name, Price, ImageURL FROM Items\"
rs.Open SQL, Conn rs.MoveFirst
Function GetItemParameters(iItemID) \'Open database Set Conn = Server.CreateObject(\"ADODB.Connection\") Set Rs = Server.CreateObject(\"ADODB.Recordset\") \'Modify and use this connection if your database is in your database directory \'Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\\your database directory\\items.mdb\" Conn.Open \"DBQ=\" & Server.Mappath(\"items.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
SQL = \"SELECT* FROM Items WHERE ProductNum like \'%\" & iItemID & \"%\'\" rs.Open SQL, Conn rs.MoveFirst
Dim aParameters aParameters = Array(rs(\"ImageURL\"), rs(\"Name\"), rs(\"Price\")) \' Return array containing product info. GetItemParameters = aParameters End Function
%> <% Dim dictCart \' as dictionary Dim sAction \' as string Dim iItemID \' as integer Dim iItemCount \' as integer
If IsObject(Session(\"cart\")) Then Set dictCart = Session(\"cart\") Else
Set dictCart = Server.CreateObject(\"Scripting.Dictionary\") End If
Det er formegentlig fordi recorden ikke findes? BOF (Beginning of file) EOF(End of file)...den fejl forekommer normalt hvis der ikke findes en record...
jeg ved ikke hvad du mener..der er en database...det er når jeg trykker \"køb\" og den så skal tilbage til default for at se indkøbskurven. Her er den sætning der åbenbart går galt når der trykkes \"køb\" <a href=\"default.asp?action=add&item=<% =rs(\"ProductNum\")%>%3C&count=1\">
babyshark> The original question was \"Hvad betyder Cint??\" Your original problem was you were receiving an error \"Type mismatch: \'CInt\'\"
If you look in the Access database the field in more than likely a numeric field. If you eneter a value 110 you say it works but AB110 it doesnt. Make sure the field type in the database IS text and then remove Cint() in the ASP code.
Nu har jeg sat hele skidtet op som ham der oprindeligt lavede det havde gjort og det HAR virket...men det gør det ikke nu...jeg fatter nada...der er ikke ændret en bønne ved det oprindelige og nu virker skidtet ikke.. den siger stadig den fejl med BOF og EOF, lige meget om jeg fjerner alle CInt koder eller ej...
babyshark>Looking at the code from your comment 09/09 2001 19:05:04 is it the line iItemID = CInt(Request.QueryString(\"item\")) which actually gives the problem. If so, then this has NOTHING to do with the actual database. This is as far as I can see a variable used in the program so it is obviously because your trying to convert a text field which contains invalid data, for example \"AB110\". If you want to use AB110 then you MUST remove the Cint. If the value of iItemID is to be written ti the database (cant see from your code that it does) then you MUST also change the database field type to text.
I suggest that you get the original version working again and then make the changes I suggest. Otherwise you cant be sure waht i sgiving the problem!
Synes godt om
Ny brugerNybegynder
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.