Bire Medlem sedan dec. 1999 19 074 inlägg Frågan 10 nov. 2000 14:04 #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 ;)
@nders Medlem sedan juni 2000 32 969 inlägg bire, eftersom du är ny här på webforum så ska jag vara snäll.
skriv ut sql-satsen med response.write innan du exekverar den. betydligt lättare att se vad som är fel då.
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).
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>
Vide Medlem sedan dec. 1999 8 577 inlägg 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...
@nders Medlem sedan juni 2000 32 969 inlägg simultanpostar-vide! ;)
------------------
<A HREF="http://cartman.nu " TARGET=_blank>
what would brian boitano do?</A>
@nders Medlem sedan juni 2000 32 969 inlägg ...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>
Bire Medlem sedan dec. 1999 19 074 inlägg 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 :)
Vide Medlem sedan dec. 1999 8 577 inlägg 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]
Bire Medlem sedan dec. 1999 19 074 inlägg *Pust* Kan ingen snacka svenska på wF längre :e
Jag fattar ingenting av det ni skriver...
A AG Medlem sedan mars 2000 1 266 inlägg 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
@nders Medlem sedan juni 2000 32 969 inlägg å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>
Bire Medlem sedan dec. 1999 19 074 inlägg 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...
@nders Medlem sedan juni 2000 32 969 inlägg 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>
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.
E emission Medlem sedan dec. 1999 6 721 inlägg 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.
Hur mycket är detta igentligen?
Är det mycket? eller lite?