webForumDet fria alternativet

Lite hjälp med ett script...

ASPur ASP

14 svar · 318 visningar · startad av Bire

Medlem sedan dec. 199919 074 inlägg
Frågan#1

Hellåba!

Är det nån som ser varför jag får typblandningsfel i denna kod:

<%
dim conn
dim rs
dim strconn
dim strsql
strsql = ""
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("../cgi-bin/shop.mdb")
strSQL = "INSERT INTO Prod(KatId, Fordon, Modell, Year, Bildel, Anm1, Anm2, Kvalitet, Lagernr, Bild, Pris, Orginalnr, Color, Diverse)"
strSQL = strSQL & " SELECT "
strSQL = strSQL & "'" & request("KatId") & "' as KatId,"
strSQL = strSQL & "'" & request("Fordon") & "' as Fordon,"    
strSQL = strSQL & "'" & request("Modell") & "' as Modell,"
strSQL = strSQL & "'" & request("Year") & "' as Year,"
strSQL = strSQL & "'" & request("Bildel") & "' as Bildel,"
strSQL = strSQL & "'" & request("Anm1") & "' as Anm1,"
strSQL = strSQL & "'" & request("Anm2") & "' as Anm2,"
strSQL = strSQL & "'" & request("Kvalitet") & "' as Kvalitet,"
strSQL = strSQL & "'" & request("Lagernr") & "' as Lagernr,"
strSQL = strSQL & "'" & request("Bild") & "' as Bild,"
strSQL = strSQL & "'" & request("Pris") & "' as Pris,"
strSQL = strSQL & "'" & request("Orginalnr") & "' as Orginalnr,"
strSQL = strSQL & "'" & request("Color") & "' as Color,"
strSQL = strSQL & "'" & request("Diverse") & "' as Diverse"

set conn = server.createobject("adodb.connection")
conn.open strconn
conn.execute(strSQL)
conn.close
set conn = nothing
%>

Som vanligt så blir jag galen ;)

Medlem sedan juni 200032 967 inlägg
#2

bire, eftersom du är ny här på webforum så ska jag vara snäll.

  1. skriv ut sql-satsen med response.write innan du exekverar den. betydligt lättare att se vad som är fel då.

  2. du har förmodligen apostrofer runt ett värde som är satt som tal i databasen, och jag gissar på katid, och möjligtvis någon mer (typ year).

  3. det kan mycket väl vara så att year är ett reserverat ord, som kan komma att bråka senare. klamra det kolumnnamnet eller byt namn på den kolumnen i så fall.

mvh

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
what would brian boitano do?</A>

Medlem sedan dec. 19998 577 inlägg
#3

Skriv ut SQL-satsen och publicera den här... och säg vilka fält som är vilket... :)

------------------
It's not that I'm afraid to die. I just don't want to be there when it happens.
Kom hem till mig...

Medlem sedan juni 200032 967 inlägg
#4

simultanpostar-vide! ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
what would brian boitano do?</A>

Medlem sedan juni 200032 967 inlägg
#5

...fast jag förstår inte varför du väljer en insert - select istället för insert into .... values ...

kan du svara på det kanske?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
what would brian boitano do?</A>

Medlem sedan dec. 199919 074 inlägg
#6

Jag kan inte svara på nått när det gäller ASP...

Jag har heller inte tillgång till internet på den datorn som jag scriptar i så detta blir en svårknäckt nöt känns det som då min arbetsdator är ockuperad av kollegor just nu ;)

Jag ska kolla dina tips @nders... återkommer senare :)

Medlem sedan dec. 19998 577 inlägg
#7

Nja, jag skulle ju helt klart byta ut " SELECT " mot " VALUES "...

... och ändra syntaxen på alla tillägg variablen, nedanför VALUES...

... testa det... :)

------------------
It's not that I'm afraid to die. I just don't want to be there when it happens.
Kom hem till mig...

[Redigerat av Vide den 10 nov 2000]

Medlem sedan dec. 199919 074 inlägg
#8

*Pust* Kan ingen snacka svenska på wF längre :e

Jag fattar ingenting av det ni skriver...

Medlem sedan mars 20001 266 inlägg
#9

Hoppas jag är mer pedagodisk. :)
Här är en sådan insert kod, hoppas du förstår lite av det iaf :)

laggtill = "INSERT INTO Artiklar "
laggtill = laggtill & "(Typ, Rubrik, Introbild, Artikel, Val1, Val2, Val3, Val4, Genre, SScreen1, SScreen2, SScreen3, SScreen4, Screen1, Screen2, Screen3, Screen4, Skribent, Epost) "
laggtill = laggtill & "VALUES('" & Trim(Request.Form("typ")) & "', '" & Trim(Request.Form("rubrik")) & "', '" & introb & "', '" & Trim(Request.Form("artikel")) & "', '" & Trim(Request.Form("val1")) & "', '" & Trim(Request.Form("val2")) & "', '" & Trim(Request.Form("val3")) & "', '" & Trim(Request.Form("val4")) & "', '" & Trim(Request.Form("genre")) & "', '" & file1s & "', '" & file2s & "', '" & file3s & "', '" & file4s & "', '" & file5 & "', '" & file6 & "', '" & file7 & "', '" & file8 & "', '" & Trim(Request.Form("skribent")) & "', '" & Trim(Request.Form("epost")) & "'); "
connection.execute(laggtill)
%>

Andreas

Medlem sedan juni 200032 967 inlägg
#10

åssa gör väl jag ett försök då:

strSQL = "INSERT INTO Prod(KatId, Fordon, Modell, [Year], Bildel, Anm1, Anm2, Kvalitet, Lagernr, Bild, Pris, Orginalnr, Color, Diverse)"
strSQL = strSQL & " VALUES (" & request("KatId") & ", '" & request("Fordon") & "', '" & request("Modell") & "', " & request("Year") & ", "
strSQL = strSQL & "'" & request("Bildel") & "', '" & request("Anm1") & "', '" & request("Anm2") & "', '" & request("Kvalitet") & "', "
strSQL = strSQL & request("Lagernr") & ", '" & request("Bild") & "', '" & request("Pris") & "', '" & request("Orginalnr") & "', "
strSQL = strSQL & "'" & request("Color") & "', '" & request("Diverse") & "')"

jag har antagit att katid, year och lagernr är satta som heltal i databasen.

om katid är en räknare får du inte ha med den i insert-satsen.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
what would brian boitano do?</A>

Medlem sedan dec. 199919 074 inlägg
#11

Tack för hjälpen grabbar!

Jag löste det genom att gå den enkla vägen: Jag gjorde om alla fält i databasen till "text" ;)

Hur som helst så borde jag köpa en bok eller nått...

Medlem sedan juni 200032 967 inlägg
#12

Jag gjorde om alla fält i databasen till "text"

arrgghh.

Hur som helst så borde jag köpa en bok eller nått...

ööh, ja... ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
what would brian boitano do?</A>

Medlem sedan aug. 200026 inlägg
#13

Jag förstår inte alla som håller på med dessa långa SQL strängar.. för insert into.
Jag har hållt på med ASP nu i 4år och har alltid varit trött på de extreemt långa SQL satserna.. så jag ändrade mig så snabbt jag kunde. till Access sättet att lägga till i en databas.. så extreemt mycket lättare att hålla koll på..
Bara öppna ett Recordset å sen använd

Rs.AddNew

Rs("Column") = Value

Rs.Update

Eller har någon något emot detta sätt? vill gärna höra synpunkter.

Medlem sedan dec. 19996 721 inlägg
#14

Det har egentligen inget med Access att göra, utan är metoder som ADO erbjuder.

Anledningen till att man inte använder det i så stor utsträckning (jag tycker att man använder det alltför ofta) är att det sänker prestanda och ökar belastningen på databasen.

Medlem sedan aug. 200026 inlägg
#15

Hur mycket är detta igentligen?

Är det mycket? eller lite?

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