webForumDet fria alternativet

svår kod ska sparas i databas

ASP

26 svar · 563 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hejsan!
jag har ett litet problem...
denna kod:

varde = Request.Cookies(""& Session.SessionID &"")
hamta = Split(varde,"&")
ReDim MyArray(4,Ubound(hamta))
for x = 0 to ubound(hamta)
hamta2 = Split(hamta(x),"=")
IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then
SQL = "SELECT * FROM produkter WHERE id =" & int(hamta2(0))
Set RecSet = Connect.Execute(SQL)
MyArray(0,x) = hamta2(0)
MyArray(1,x) = hamta2(1)
MyArray(2,x) = RecSet("artnr")
MyArray(3,x) = RecSet("namn")
MyArray(4,x) = RecSet("pris")

.. skulle jag vilja spara i en databas vid namn saker.mdb..
Men detta är tok för svår kod för mig :/ Så vet inte alls hur jag ska göra... :S
någon som kan hjälpa mig?

Mvh Adde

Medlem sedan apr. 20003 174 inlägg
#2

En variant..

[red]strInsertString = ""& vbcrlf &_
"varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
"hamta = Split(varde,""&"")"& vbcrlf &_
"ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
"for x = 0 to ubound(hamta)"& vbcrlf &_
"hamta2 = Split(hamta(x),""="")"& vbcrlf &_
"IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
"SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
"Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
"MyArray(0,x) = hamta2(0)"& vbcrlf &_
"MyArray(1,x) = hamta2(1)"& vbcrlf &_
"MyArray(2,x) = RecSet(""artnr"")"& vbcrlf &_
"MyArray(3,x) = RecSet(""namn"")"& vbcrlf &_
"MyArray(4,x) = RecSet(""pris"")"

...		

sql = "INSERT INTO tblTable (fldField) VALUES('"& CStr(strInsertString) &"')"[/red]
Medlem sedan aug. 2002600 inlägg
#3

Palle skrev:

En variant..

[red]strInsertString = ""& vbcrlf &_
"varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
"hamta = Split(varde,""&"")"& vbcrlf &_
"ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
"for x = 0 to ubound(hamta)"& vbcrlf &_
"hamta2 = Split(hamta(x),""="")"& vbcrlf &_
"IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
"SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
"Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
"MyArray(0,x) = hamta2(0)"& vbcrlf &_
"MyArray(1,x) = hamta2(1)"& vbcrlf &_
"MyArray(2,x) = RecSet(""artnr"")"& vbcrlf &_
"MyArray(3,x) = RecSet(""namn"")"& vbcrlf &_
"MyArray(4,x) = RecSet(""pris"")"

...		

sql = "INSERT INTO tblTable (fldField) VALUES('"& CStr(strInsertString) &"')"[/red]

Okej, då har jag gjort så här:

<%
Response.Buffer = true

strInsertString = ""& vbcrlf &_
"varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
"hamta = Split(varde,""&"")"& vbcrlf &_
"ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
"for x = 0 to ubound(hamta)"& vbcrlf &_
"hamta2 = Split(hamta(x),""="")"& vbcrlf &_
"IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
"SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
"Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
"MyArray(0,x) = hamta2(0)"& vbcrlf &_
"MyArray(1,x) = hamta2(1)"& vbcrlf &_
"MyArray(3,x) = RecSet(""sak"")"& vbcrlf &_
"MyArray(4,x) = RecSet(""antal"")"

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../databas/saker.mdb")
sql = "INSERT INTO saker (fldField) VALUES('"& CStr(strInsertString) &"')"
%>

Men, det händer inget.. det blir bara en vit sida och inget sparas i databasen.. :/ varför?

Medlem sedan feb. 200112 078 inlägg
#4

Du kanske borde exekvera SQL-satsen också. Som det är just nu så har du typ bilnyckeln i fickan och undrar varför inte motorn brummar.

<%
Response.Buffer = true

strInsertString = ""& vbcrlf &_
"varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
"hamta = Split(varde,""&"")"& vbcrlf &_
"ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
"for x = 0 to ubound(hamta)"& vbcrlf &_
"hamta2 = Split(hamta(x),""="")"& vbcrlf &_
"IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
"SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
"Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
"MyArray(0,x) = hamta2(0)"& vbcrlf &_
"MyArray(1,x) = hamta2(1)"& vbcrlf &_
"MyArray(3,x) = RecSet(""sak"")"& vbcrlf &_
"MyArray(4,x) = RecSet(""antal"")"

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../databas/saker.mdb")
sql = "INSERT INTO saker (fldField) VALUES('"& CStr(strInsertString) &"')"
[b]Connect.Execute(sql),,128[/b]
Connect.Close
Set Connect = Nothing
%>
Medlem sedan aug. 2002600 inlägg
#5

OveRRidE skrev:

Du kanske borde exekvera SQL-satsen också. Som det är just nu så har du typ bilnyckeln i fickan och undrar varför inte motorn brummar.

<%
Response.Buffer = true

strInsertString = ""& vbcrlf &_
"varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
"hamta = Split(varde,""&"")"& vbcrlf &_
"ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
"for x = 0 to ubound(hamta)"& vbcrlf &_
"hamta2 = Split(hamta(x),""="")"& vbcrlf &_
"IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
"SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
"Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
"MyArray(0,x) = hamta2(0)"& vbcrlf &_
"MyArray(1,x) = hamta2(1)"& vbcrlf &_
"MyArray(3,x) = RecSet(""sak"")"& vbcrlf &_
"MyArray(4,x) = RecSet(""antal"")"

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../databas/saker.mdb")
sql = "INSERT INTO saker (fldField) VALUES('"& CStr(strInsertString) &"')"
[b]Connect.Execute(sql),,128[/b]
Connect.Close
Set Connect = Nothing
%>

Hehe oj då.. :r
Vilken tavla..

Nu kommer jag lite längre ;)
med detta fel:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] The INSERT INTO statement contains the following unknown field name: 'fldField'. Make sure you have typed the name correctly, and try the operation again. 

/2/shoppen/order.asp, line 22
Medlem sedan aug. 2002600 inlägg
#6

Fixade de.. men detta e det som den sparar:

varde = Request.Cookies("& Session.SessionID &")

varför då?

Medlem sedan aug. 2002600 inlägg
#7

Om ni inte fattar vad jag snackar om...
så bifogar jag 2 filer:
default.asp = där ifrån skickas man till order.asp där den ska spara i databasen...

Vore JÄTTE tacksam om ni kunde kolla på det.. gör vad som helst i gentjänst ;)

Medlem sedan aug. 2002600 inlägg
#8

...och order.asp

Som sagt.. jätte tacksam om ni orkar kolla igenom...

Tack!

Medlem sedan aug. 2002600 inlägg
#9

Någon som kan..? :/

Medlem sedan aug. 20013 824 inlägg
#10

Detta kommer att skriva ut din SQL-fråga. Posta den här så kan vi kolla på det mer då ;)

<!--#include file="installningar.asp"-->
<%
     Response.Buffer = true

     strInsertString = ""& vbcrlf &_
          "varde = Request.Cookies(""& Session.SessionID &"")"& vbcrlf &_
          "hamta = Split(varde,""&"")"& vbcrlf &_
          "ReDim MyArray(4,Ubound(hamta))"& vbcrlf &_
          "for x = 0 to ubound(hamta)"& vbcrlf &_
          "hamta2 = Split(hamta(x),""="")"& vbcrlf &_
          "IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then"& vbcrlf &_
          "SQL = ""SELECT * FROM produkter WHERE id =""& int(hamta2(0))"& vbcrlf &_
          "Set RecSet = Connect.Execute(SQL)"& vbcrlf &_
          "MyArray(0,x) = hamta2(0)"& vbcrlf &_
          "MyArray(1,x) = hamta2(1)"& vbcrlf &_
          "MyArray(3,x) = RecSet(""sak"")"& vbcrlf &_
          "MyArray(4,x) = RecSet(""antal"")"

     sql = "INSERT INTO saker (sak) VALUES('"& CStr(strInsertString) &"');"

     Response.Write("SQL = """& SQL & """")
     Response.End()

     Set Connect = Server.CreateObject("ADODB.Connection") 

          Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../databas/saker.mdb")
          Connect.Execute(sql),,128
          Connect.Close

     Set Connect = Nothing
%>
Medlem sedan aug. 2002600 inlägg
#11

Wee :) detta får jag ut nu:

SQL = "INSERT INTO saker (sak) VALUES(' varde = Request.Cookies("& Session.SessionID &") hamta = Split(varde,"&") ReDim MyArray(4,Ubound(hamta)) for x = 0 to ubound(hamta) hamta2 = Split(hamta(x),"=") IF Len(hamta2(0)) > 0 AND len(hamta2(1)) > 0 then SQL = "SELECT * FROM produkter WHERE id ="& int(hamta2(0)) Set RecSet = Connect.Execute(SQL) MyArray(0,x) = hamta2(0) MyArray(1,x) = hamta2(1) MyArray(3,x) = RecSet("sak") MyArray(4,x) = RecSet("antal")');"

säger det dig nått..?

Medlem sedan aug. 20013 824 inlägg
#12

Det ser ju rätt ut...
Får du nått felmeddelande?

Medlem sedan aug. 2002600 inlägg
#13

mikul skrev:

Det ser ju rätt ut...
Får du nått felmeddelande?

Det blir helt vitt :s
å den sparar så här i databasen:

varde = Request.Cookies("& Session.SessionID &")

Medlem sedan aug. 20013 824 inlägg
#14

Hur skriver du ut kolumnen sak sen? Kan du visa den koden/sidan?

Medlem sedan aug. 2002600 inlägg
#15

mikul skrev:

Hur skriver du ut kolumnen sak sen? Kan du visa den koden/sidan?

Men jag kollade i databasen...

Medlem sedan aug. 20013 824 inlägg
#16

Ja men om du har en access databas så syns inte alla raderna om du har radbrytning i texten du skickar med...

Så antagligen ligger felet i utskriften med tanke på att det inte syns någonting där.

Medlem sedan mars 20015 287 inlägg
#17

"Brum, brum." ;)

Är du HELT säker på att det inte finns mer data i databasen?
Om du markerar texten i fältet i db o kikar "åt sidan o neråt"?
Du har ju radbrytningar i din kod som kan göra det svårt att se det i access.

Medlem sedan mars 20015 287 inlägg
#18

Me = långsam. :(

Medlem sedan dec. 20025 871 inlägg
#19

Thompa__85 skrev:

å den sparar så här i databasen:

varde = Request.Cookies("& Session.SessionID &")

Står det verkligen rätt? ;) Ska det inte vara:

varde = Request.Cookies(Session.SessionID)
Medlem sedan aug. 2002600 inlägg
#20

solbulle skrev:

"Brum, brum." ;)

Är du HELT säker på att det inte finns mer data i databasen?
Om du markerar texten i fältet i db o kikar "åt sidan o neråt"?
Du har ju radbrytningar i din kod som kan göra det svårt att se det i access.

Har tyvärr förstorat, dragit isär allt i databasen.. men de verkar som om den bara innehåller de där tyvärr :/

Men kan säkert vara nått fel i default.asp kanske? bifogar den igen...

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)