webForumDet fria alternativet

Uppdatera en text, databas

22 svar · 471 visningar · startad av boilwater

boilwaterMedlem sedan juni 200476 inlägg
#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!

DavidBMedlem 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
@ndersMedlem sedan juni 200032 969 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

boilwaterMedlem 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?

WebbisNetMedlem 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

boilwaterMedlem 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! :)

boilwaterMedlem 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
%>

oolaMedlem 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.

boilwaterMedlem 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... ;)

boilwaterMedlem 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.

@ndersMedlem sedan juni 200032 969 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

boilwaterMedlem 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

@ndersMedlem sedan juni 200032 969 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

boilwaterMedlem 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

@ndersMedlem sedan juni 200032 969 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

oolaMedlem 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å.

Jesper TMedlem 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

boilwaterMedlem 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

@ndersMedlem sedan juni 200032 969 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

oolaMedlem sedan feb. 2004123 inlägg
#20

Det var det jag menade, ja :)

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