webForumDet fria alternativet

Uppdatera en text, databas

ASP

22 svar · 471 visningar · startad av boilwater

Medlem sedan juni 200476 inlägg
Frågan#1

Hejsann!

Jag har en sida med lite text som jag vill att man skall kunna uppdatera från webben. Det handlar bara om en "ruta" med text. Låt oss säga jag kallar textfältet för "text", och databasen (access) innehåller bara ett fält, "text".

Hur skall man göra detta? Jag har försökt och försökt, men hittar ingen enkel förklaring på detta. :r

Jätte tacksam för hjälp!

Medlem sedan jan. 20001 372 inlägg
#2
Dim text, SQLStmt, Connection, RS

strConn = "" 'Din anslutning till databasen
text = Request.QueryString("text")

SQLStmt = "UPDATE tabellen SET text = " & text & ""

Set Connection = CreateObject("ADODB.Connection")
Connection.Open strConn

Connection.Execute(SQLStmt)),,128

RS.Close
Set RS = Nothing
Connection.Close
Set Connection = Nothing
Medlem sedan juni 200032 967 inlägg
#3

Just text är dock inget bra fältnamn, så välj något annat istället. Använder man ord som är reserverade så ber man om felmeddelanden.

mvh

Medlem sedan juni 200476 inlägg
#4

*lol* Ok, tack för hjälpen! :)

Hur gör man ett formulär för att uppdatera denna "texten" ?
Alltså formulär och så kan jag ju, men hur kopplar man ihop det så att "texten" uppdateras?

Medlem sedan feb. 20032 027 inlägg
#5

När du har gjort ditt formulär så skickar du vidare innehållet i textrutan till en annan sida där du har din updatesats. Sen kör du en redirect tillbaka ex till formuläret eller till en sida där texten visas

Medlem sedan juni 200476 inlägg
#6

Aha, tackar så mycket! Då skall jag testa och se om jag får till det!

Tack alla - för hjälpen! :)

Medlem sedan juni 200476 inlägg
#7

Nu har jag testat att göra den första delen, där man skall se texten. Men när jag skal kolla på nätet får jag detta felmeddelandet:
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/bio/bio_se.asp, line 21

Connection.Execute(SQLStmt)),,128
---------------------------^

Koden är alltså:
<%
Dim text, SQLStmt, Connection, RS

strConn = "bio.mdb" 'Din anslutning till databasen
text = Request.QueryString("bio")

SQLStmt = "UPDATE tabellen SET bio = " & bio & ""

Set Connection = CreateObject("ADODB.Connection")
Connection.Open strConn

Connection.Execute(SQLStmt)),,128

RS.Close
Set RS = Nothing
Connection.Close
Set Connection = Nothing
%>

Medlem sedan feb. 2004123 inlägg
#8

Utan att egentligen kunna så mycket tycker jag att det ser ut som om du har en parantes för mycket på den här raden:

Connection.Execute(SQLStmt)),,128

Den andra paranetsen efter SQLStmt har ju ingen "(" som startar något.

Medlem sedan juni 200476 inlägg
#9

Om jag tar bort den får jag detta felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/bio/bio_se.asp, line 19

öh... ;)

Medlem sedan juni 200476 inlägg
#10

Det är förresten ingen som vet om något script som fyller samma funktion som ovanför? :) Har hämtat ner en del nyhetsscript, men de är så mycket "större" än vad jag behöver.

Medlem sedan juni 200032 967 inlägg
#11

strConn skall inte innehålla bara namnet på din datakälla, utan också en beskrivning på vad det är för något, vilken drivrutin som skall användas. Se https://www.connectionstrings.com .

mvh

Medlem sedan juni 200476 inlägg
#12

Hehe, ok.. Då ser koden ut så här:

<%
Dim text, SQLStmt, Connection, RS
strConn = "driver={Microsoft Access Driver (*.mdb)}; Dbq=bio.mdb" 'Din anslutning till databasen
text = Request.QueryString("bio")

SQLStmt = "UPDATE tabellen SET bio = " & bio & ""

Set Connection = CreateObject("ADODB.Connection")
Connection.Open strConn

Connection.Execute(SQLStmt),,128

RS.Close
Set RS = Nothing
Connection.Close
Set Connection = Nothing
%>

Men nu får jag detta felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.

/bio/bio_se.asp, line 21

Medlem sedan juni 200032 967 inlägg
#13

Du måste ha en komplett sökväg till databasen, ex. C:\xxx\xxx\bio.mdb. Du kan använda Server.Mappath() för att ta fram den sökvägen:

strConn = "driver={Microsoft Access Driver (*.mdb)}; Dbq=" & server.mappath("bio.mdb") 'Din anslutning till databasen

Om databasen ligger i samma mapp som denna asp-fil bör det se ut så.

mvh

Medlem sedan juni 200476 inlägg
#14

Mm, jag testade det tidigare men fick felmeddelande da me', så jag trodde det var fel.. Så här är felmeddelandet nu då:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/bio/bio_se.asp, line 20

Tack så mycket för att ni tar av er tid och hjälper mig, känner mig jätte dum ju! :stud

Medlem sedan juni 200032 967 inlägg
#15

Är fältet bio av text-typ så ska du ha apostrofer runt fältvärdet i SQL-frågan:

SQLStmt = "UPDATE tabellen SET bio = '" & bio & "'"

mvh

Medlem sedan feb. 2004123 inlägg
#16

Jag chansar vidare mest för att jag har lite att göra...

Borde det inte stå text istället för bio i UPDATE-satsen? Det andra bio:et på raden alltså.

Medlem sedan nov. 20017 144 inlägg
#17

@nders skrev:

Just text är dock inget bra fältnamn, så välj något annat istället. Använder man ord som är reserverade så ber man om felmeddelanden.mvh

Medlem sedan juni 200476 inlägg
#18

Nu har jag skrivit in de apostroferna, och ändrat "tabellen" till vad tabellen egentligen hette, bio. Nu får jaf detta felmeddelandet:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/bio/bio_se.asp, line 22

Den nuvarande koden ser alltså så här ut, om det av någon orsak är oklart:

Dim text, SQLStmt, Connection, RS
strConn = "driver={Microsoft Access Driver (*.mdb)}; Dbq=" & server.mappath("bio.mdb") 'Din anslutning till databasen
text = Request.QueryString("bio")

SQLStmt = "UPDATE bio SET bio = '" & bio & "'"

Set Connection = CreateObject("ADODB.Connection")
Connection.Open strConn

Connection.Execute(SQLStmt),,128

RS.Close
Set RS = Nothing
Connection.Close
Set Connection = Nothing

Medlem sedan juni 200032 967 inlägg
#19

För det första:

[b]text[/b] = Request.QueryString("bio")

SQLStmt = "UPDATE bio SET bio = '" & [b]text[/b] & "'"

(Det var nog det oola menade. Dessutom; du skapar aldrig något recordset RS, så ta bort dessa rader:

RS.Close
Set RS = Nothing

Mvh

Medlem sedan feb. 2004123 inlägg
#20

Det var det jag menade, ja :)

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)