Det är alltså denna kod det är fel på: Hej, när du får sådana här problem skall du skriva ut SQL-frågan för att se om den är fel... Det finns en kurs om SQL och att skriva till och från en databas, läs den till att börja med. Du har flera fel med i din kod. Du har fel Anna-Karin. Man kan bryta rader med _. Vilket vb tolkar som att nästa rad är fortsättning på aktuell. Nackdelen med din samanslagning av strängar är att den måste dimensioner om SQLstring variabeln för varje tilldelening. Lite svårt att veta när du inte berättar vad du får för fel och vilken databas du använder. Alla fält är tal-fält. Har du testat med VALUES istället som JohanD föreslår? Testade det nu och fick då: Du har missat ett mellanslag, testa såhär istället: Är det rätt så här då? Hoppas ni kan förlåta mig. Jag har varit så dum så dum.fel på INSERT INTO [LÖST]
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databasen"
strSQL = "INSERT INTO relationer (id, typ, person)" & vbCrLf & _
"SELECT " & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id")
Connect.Execute strSQL
Connect.Close
Set Connect = Nothing Sv: fel på INSERT INTO
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databasen"
strSQL = "INSERT INTO relationer (id, typ, person)" & vbCrLf & _
"SELECT " & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id")
Response.Write strSQL
Connect.Execute strSQL
Connect.Close
Set Connect = Nothing
Det är också bra att veta vad du får för felmeddelande..
Lycka till!
/Fredrik Sv: fel på INSERT INTO
Så här ska din SQL sats se ut.
SQLstring = "INSERT INTO relationer (id, typ, person)"
SQLstring =SQLstring & "VALUES(" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"
Connect.Execute strSQL
Nu antar jag att allt är tal i databasen, är det text ska varje post i VALUES omslutas med ' t ex:
VALUES(" & Session("id") & ", ' " & Request.QueryString("typ") & " ' , " & Request.QueryString("id") & ")"
Du ska inte ha med mellanslagen, jag la till dem för att du lättare ska se hur de ska infogas.
/Anna-KarinSv: fel på INSERT INTO
Jag gissar på att det är något av värdena som saknas. Men om du gör som Budda säger. Ser du tydligare om det är fel i din SQL syntax.Sv: fel på INSERT INTO
Access SQL-Server t.ex. ska klara den syntax som du använder, jag skulle gissa på att fältet typ inte är ett tal utan ett textfält, i sådana fall ska det vara ' runt värdet:
strSQL = "INSERT INTO relationer (id, typ, person)" & vbCrLf & _
"SELECT " & Session("id") & ", '" & Request.QueryString("typ") & "', " & Request.QueryString("id")
Hur det är med andra databaser vet jag inte, men där kanske du måste skriva om satsen till Cougarinas exempel, fast lägg till ett mellanslag innan VALUES, såhär:
SQLstring = "INSERT INTO relationer (id, typ, person) " & _
"VALUES(" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"
/JohanSv: fel på INSERT INTO
Det skall väll också nämnas att jag använder MySQL-databas.
Jag testade det Budda skrev. Detta skrevs då ut:
INSERT INTO relationer (id, typ, person) SELECT 1, 1, 3
Microsoft OLE DB Provider for ODBC Drivers fel '80040e09'
[MySQL][ODBC 3.51 Driver][mysqld-3.23.52]You have an error in your SQL syntax near '' at line 2
/community1/aaa/111/lagg_till_relation.asp, rad 9
Jag testade också att skriva:
SQLstring = "INSERT INTO relationer (id, typ, person)"
SQLstring =SQLstring & "VALUES(" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"
Connect.Execute SQLstring
Men fick då detta felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80004005'
[MySQL][ODBC 3.51 Driver][mysqld-3.23.52]Duplicate entry '1' for key 1
/community1/aaa/111/lagg_till_relation.asp, rad 8 Sv: fel på INSERT INTO
SQLstring = "INSERT INTO relationer (id, typ, person) " & vbCrLf & _
" VALUES (" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"Sv: fel på INSERT INTO
Microsoft OLE DB Provider for ODBC Drivers fel '80004005'
[MySQL][ODBC 3.51 Driver][mysqld-3.23.52]Duplicate entry '1' for key 1 Sv: fel på INSERT INTO
SQLstring = "INSERT INTO relationer (id, typ, person) "
SQLstring =SQLstring & "VALUES(" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"
Connect.Execute SQLstringSv: fel på INSERT INTO
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databasen"
SQLstring = "INSERT INTO relationer (id, typ, person) "
SQLstring =SQLstring & "VALUES(" & Session("id") & ", " & Request.QueryString("typ") & ", " & Request.QueryString("id") & ")"
Connect.Execute SQLstring
Connect.Close
Set Connect = Nothing
%>
...Konstigt om det är det för får även nu detta felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80004005'
[MySQL][ODBC 3.51 Driver][mysqld-3.23.52]Duplicate entry '1' for key 1 Sv: fel på INSERT INTO
Felet var att jag på "id"-fältet satt en primarykey. Det var därför det inte gick att lägga till en ny rad i databasen med ett id-värde på 1.
Så troligen fungerade de flesta av era SQL-srängar.
Tack för alla era svar.