21. januar 2005 - 23:27
Der er
56 kommentarer og 1 løsning
Indsætte data til bruger som er logget ind.
hej eksperter. jeg er stødt ind i endnu et lille problem. jeg vil indsætte data til brugeren som er logget ind jeg har prøvet med følgende men uden held <% strSQL = "Insert into admin WHERE (login='" & login & "'") values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')" conn.execute(strSQL) %> men den kommer med følgende fejl. Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401) Slut på sætning var ventet /opreturl.asp, line 21, column 57 strSQL = "Insert into admin WHERE (login='" & login & "'") values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')" --------------------------------------------------------^ håber lige i kan hjælpe.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
21. januar 2005 - 23:51
#1
Prøv med: strSQL = "Insert into admin WHERE (login='" & login & "') values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')" Apo
21. januar 2005 - 23:56
#2
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen. /opreturl.asp, line 22 så kommer den med denne fejl
21. januar 2005 - 23:59
#3
Jeg har ikke før set at man kan hente input via Request.Form("url1, url2, osv."). Er du sikker på at det virker? Apo
22. januar 2005 - 00:03
#4
når jeg opretter brugeren bruger jeg requeest form men andet ved jeg ikke lige hvad skulle man ellers gøre ?
22. januar 2005 - 00:06
#5
smid where hen sidst i sætningen
22. januar 2005 - 00:08
#6
Du skal indsætte request.Form for alle individuelt, medmindre det er alle fra din form og de er i rigtig rækkefølge så kan du lave en For each... men det første er lidt mere overskueligt. Prøv med: strSQL = "Insert into admin values('" & Request.Form("url1")&"','" & Request.Form("url2")&"','" & Request.Form("url3")&"','" & Request.Form("url4")&"','" & Request.Form("url5")&"','" & Request.Form("url6")&"','" & Request.Form("url7")&"','" & Request.Form("url8")&"') WHERE (login='" & login & "')"
22. januar 2005 - 00:09
#7
strSQL = "Insert into admin values('" & Request.Form("url1, url2, url3, url4, url5, url6, url7, url8") & "')" WHERE (login='" & login & "'") nu prøvede jeg sådan men det virkede ikke. ellers prøv lige og lav den hvis du har tid og lyst gammelhat
22. januar 2005 - 00:13
#8
Hvordan ser felterne i din database ud?
22. januar 2005 - 00:13
#9
meltinis den beder mig om at sætte et ; ind i slutnigrn af sætningen men hvor???
22. januar 2005 - 00:14
#10
meltinis, er inde på noget af det rigtige
22. januar 2005 - 00:15
#11
login, password, fornavn, url1, url2, url3, url4, url5, url6, url7, url8
22. januar 2005 - 00:15
#12
... Du skal jo indsætte værdierne i et eller flere felter :-) strSQL = "INSERT into admin (felt1, felt2, felt3, osv.) values('" & felt1 & "','" & felt2 & "','" & felt3 & "')" Conn.Execute(strSQL)
22. januar 2005 - 00:19
#13
Så må det vel blive noget a'la det her: strSQL = "INSERT into admin (login, password, fornavn, url1, url2, url3, url4, url5, url6, url7, url8) values('" & Login & "','" & Password & "','" & fornavn & "','" & url1 & "','" & url2 & "','" & url3 & "','" & url4 & "','" & url5 & "','" & url6 & "','" & url7 & "','" & url8 & "')" Conn.Execute(strSQL) Apo
22. januar 2005 - 00:20
#14
jeg prøvede at skrive det som apo siger altså <%strSQL = "Insert into admin (url1, url2,url3,url4, url5, url6, url7, url8) values('" & Request.Form("url1")&"','" & Request.Form("url2")&"','" & Request.Form("url3")&"','" & Request.Form("url4")&"','" & Request.Form("url5")&"','" & Request.Form("url6")&"','" & Request.Form("url7")&"','" & Request.Form("url8")&"') WHERE (login='" & login & "')" conn.execute(strSQL) men den beder stadig om et ; i slutningrn af sætningen Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der mangler et semikolon (;) i slutningen af SQL-sætningen. /opreturl.asp, line 21
22. januar 2005 - 00:20
#15
Glemte lige at du gør din SQL mest overskuelig ved at dimensionere variablerne inden du sætter værdierne ind i SQLen: url1 = Request.Form("url1") url2 = Request.Form("url2") osv. Apo
22. januar 2005 - 00:30
#16
Hmm... Jeg har aldrig været ude for at den manglede et semikolon. Der er åbenbart stadig noget forkert i SQLen, men jeg kan ikke lige gennemskue hvad det er...
22. januar 2005 - 00:34
#17
Der må være en fejl et af de steder hvor du henter input fra (url1, url2, login, osv.) Er du sikker på at den henter værdierne rigtigt?
22. januar 2005 - 00:36
#18
vi sover i timen, man brugere ikke 'where' ved insert where bruges ved 'update' apo> når alle felter udfyldes, er det faktisk valgfrit om man angiver navnene på felterne
22. januar 2005 - 00:38
#19
gammelhat > Jeg undrede mig også over at WHERE overhovedet indgik i sætningen :-D Okay, det var jeg ikke klar over (de valgfrie felter) Apo
22. januar 2005 - 01:13
#20
undskyld jeg var lige væk hvis jeg så bare skal update min database hvad skal jeg så skrive.
22. januar 2005 - 01:16
#21
update admin set url1='bla', url2='blabla' where login='hej'
22. januar 2005 - 01:25
#23
altså update admin set url1=Request.Form("url1") url2=request.form("url2") where="login='" & login & "'" eller er det forstået forkert.
22. januar 2005 - 01:30
#24
strSQL = "UPDATE admin SET url1=" & Request.Form("url1") & ", url2=" & Request.Form("url2") & " WHERE login=" & login
22. januar 2005 - 01:32
#25
Eller for at gøre SQLen mere overskuelig: Url1 = Request.Form("url1") Url2 = Request.Form("url2") strSQL = "UPDATE admin SET url1=" & Url1 & ", url2=" & Url2 & " WHERE login=" & login Apo
22. januar 2005 - 01:38
#26
Eller mere overskueligt: strSQL = "UPDATE admin SET " strSQL = strSQL & "Url1='" & Url1 & "', " strSQL = strSQL & "Url2='" & Url2 & "' " strSQL = strSQL & " WHERE login=" & login
22. januar 2005 - 01:54
#27
den bliver ved med at komme med fejlmeldinger af forskellig art. det er ikke lige til hva.
22. januar 2005 - 01:55
#28
Hvad melder den nu?
22. januar 2005 - 01:58
#29
nåh nu fik jeg den til ikke at komme op med fejlmeldinger men istedet skriver den ikke noget i databasen.
22. januar 2005 - 01:59
#30
Prøv at give mig den præcise SQL, du har brugt...
22. januar 2005 - 02:01
#31
<table border="1"> <tr> <td width="100" height="500"> <% ' ADODB connection objektet Set Conn = Server.CreateObject("ADODB.Connection") ' Husk at angive den rigtige sti til din database DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") ' Åben databaseforbindelsen Conn.Open DSN %> <% strSQL = "UPDATE admin SET " strSQL = strSQL & "Url1='" & Url1 & "', " strSQL = strSQL & "Url2='" & Url2 & "' " strSQL = strSQL & " WHERE login='" & login & "'" conn.Execute(strSQL) %> <form action="opreturl.asp" method="post"> link1:<input type="text" name="url1"><hr> link1:<input type="text" name="url2"><hr> link1:<input type="text" name="url3"><hr> link1:<input type="text" name="url4"><hr> link1:<input type="text" name="url5"><hr> link1:<input type="text" name="url6"><hr> link1:<input type="text" name="url7"><hr> link1:<input type="text" name="url8"><hr> <input type="submit" value="Gem"> </form> </td>
22. januar 2005 - 02:08
#32
Denne burde virke: Dim Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8 Url1 = Request.Form("url1") Url2 = Request.Form("url2") Url3 = Request.Form("url3") Url4 = Request.Form("url4") Url5 = Request.Form("url5") Url6 = Request.Form("url6") Url7 = Request.Form("url7") Url8 = Request.Form("url8") strSQL = "UPDATE admin SET " strSQL = strSQL & "Url1='" & Url1 & "', " strSQL = strSQL & "Url2='" & Url2 & "', " strSQL = strSQL & "Url3='" & Url3 & "', " strSQL = strSQL & "Url4='" & Url4 & "', " strSQL = strSQL & "Url5='" & Url5 & "', " strSQL = strSQL & "Url6='" & Url6 & "', " strSQL = strSQL & "Url7='" & Url7 & "', " strSQL = strSQL & "Url8='" & Url8 & "' " strSQL = strSQL & "WHERE login='" & login Conn.Execute(strSQL) (bare erstat den med din nuværende SQL) Apo
22. januar 2005 - 02:12
#33
den kom med følgende fejl Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i strengen i forespørgselsudtrykket "login='". /opreturl.asp, line 42
22. januar 2005 - 02:14
#34
Ja, det er fordi der er en ' for meget. Prøv denne: Dim Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8 Url1 = Request.Form("url1") Url2 = Request.Form("url2") Url3 = Request.Form("url3") Url4 = Request.Form("url4") Url5 = Request.Form("url5") Url6 = Request.Form("url6") Url7 = Request.Form("url7") Url8 = Request.Form("url8") strSQL = "UPDATE admin SET " strSQL = strSQL & "Url1='" & Url1 & "', " strSQL = strSQL & "Url2='" & Url2 & "', " strSQL = strSQL & "Url3='" & Url3 & "', " strSQL = strSQL & "Url4='" & Url4 & "', " strSQL = strSQL & "Url5='" & Url5 & "', " strSQL = strSQL & "Url6='" & Url6 & "', " strSQL = strSQL & "Url7='" & Url7 & "', " strSQL = strSQL & "Url8='" & Url8 & "' " strSQL = strSQL & "WHERE login=" & login Conn.Execute(strSQL) Apo
22. januar 2005 - 02:17
#35
den kommer frem men opdaterer ikke databasen hmm.
22. januar 2005 - 02:19
#36
Hvilken type er dine databasefelter (for url1, url2, osv.)?
22. januar 2005 - 02:22
#37
tekst
22. januar 2005 - 02:24
#38
where login = login kan man ikke bruge session istedet eller er et lige meget
22. januar 2005 - 02:27
#39
Det skal de også være... Du er sikker på at stien til databasen er korrekt?
22. januar 2005 - 02:28
#40
... Hvis du har 'login' liggende i en session, skal der stå: login=" & Session("login")
22. januar 2005 - 02:28
#41
ja 100 % men ellers ville den vel også fortælle mig at den ikke kunne finde databasen
22. januar 2005 - 02:32
#42
Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1. nu kom den med en ny fejl.
22. januar 2005 - 02:33
#43
Ja, det ville du selvfølgelig få en fejlmelding på. Har du udskiftet login med Session("login")?
22. januar 2005 - 02:34
#44
Det er fordi den mangler en værdi formentlig fra et felt (input)
22. januar 2005 - 02:34
#45
Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket. /url_script.asp, line 31 og endnu en i den første var det med session(login) den næste session(id)
22. januar 2005 - 02:36
#46
Hmm... Hvor på din side henter du værdien 'id'?
22. januar 2005 - 02:36
#47
Prøv at smide hele sidens kode herind...
22. januar 2005 - 02:37
#48
det hvor jeg logger ind ser det således ud session("login") = true Session("ID") = dbrs("ID")
22. januar 2005 - 02:41
#49
Prøv i SQLen at udskifte: login=" & Session("login") Med: Id=" & Session("ID")
22. januar 2005 - 02:43
#50
Jeg vidste ikke at du brugte ID som reference til brugeren (det havde du ikke fortalt)? Databasen skal jo kende referencen på brugeren, og hvis referencen er et ID, skal der stå WHERE ID... osv.
22. januar 2005 - 02:44
#51
smid et svar du er jo en gud det virkede jeg syntes bare jeg havde prøvet alt kan man egentlig give flere point det er jeg godt nok glad for mange tak rigtig mange tak
22. januar 2005 - 02:45
#52
jeg er heller ikke helt inde i asp men syntes det er spændende det kan jo være en dag man ligefrem bliver bedre til det
22. januar 2005 - 02:46
#53
Det var så det der var problemet? Det gik pludseligt op for mig, at det kunne være det, da du begyndte at nævne ID (det er jo en vigtig detalje at fortælle :-D ) Jeg smed et svar helt øverst, da jeg troede at løsningen var lige om hjørnet - Jeg tog fejl ;-)
22. januar 2005 - 02:49
#54
jeg vil gerne lige sige mange tak for alt den tid du har brugt på mig mine fortæl dig ej før til sidst og klokken er godt tre. mange tak meget taknemmelig... :-)
22. januar 2005 - 02:50
#55
Du kan lære meget om ASP ved at studere de tutorials der findes her:
http://html.dk/tutorials/asp/ ... Og ved at kigge på nogle af de mange spørgsmål i kategorien 'ASP' her på Eksperten. Der er mange guldkorn, og meget inspiration at finde.
Men jeg er glad for at du fik det til at virke til sidst :-)
22. januar 2005 - 02:52
#56
Velbekomme, og tak for points :-) Apo
22. januar 2005 - 03:04
#57
gammelhat > Du førte os jo frem til at det skulle være UPDATE i stedet for INSERT (da vi sov i timen ;-) ). Giv lige besked her i tråden, hvis du vil have nogle af pointene (jeg holder øje de næste par dage) :-) Apo
Kurser inden for grundlæggende programmering