webForumDet fria alternativet

Lägga till data i befintlig post

ASP

11 svar · 408 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej!
Har ett litet problem. Jag vill uppdatera en post i en databas men vill inte att det gamla värdet skrivs över. Det nya ska bara läggas till Det som ska sparas är en log över händelser. Det finns kanske smidigare lösningar för detta. Problemet är att jag använder ett program som i sin tur lagrar sina värden i en accessdatabas i detta format. Det jag skriver är en asp-applikation som ska göra samma sak. Hoppas ni fattar... ;)

Så här vill jag att loglistan ska se ut när jag hämtar den från databasen:

2004-01-30 12:23 Redigerat i Desktop /H
2004-01-15 10:12 Redigerat på Internet /H

Jag har börjat fundera på lite kod
Det är ju lite som saknas...
Bland annat behövs ju radbrytningar

  <%

dim objConn
dim objRS 
dim old

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=UppdragNU"
objConn.Open
Set objRS = Server.CreateObject ("ADODB.Recordset")

Uppdatera = "SELECT * FROM tbltest WHERE id = 'U0001'"
objRS.Open Uppdatera, objConn, adOpenStatic, adLockOptimistic
old = objRS("log")
objRS("log") = Request.Form("log") + " " + old

objRS.Update 

objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing

%>
Medlem sedan nov. 20017 144 inlägg
#2

Liten tanke:

conn.execute("update strText set strText = strText + '"& strNytext &"'"),,128
Medlem sedan dec. 200012 464 inlägg
#3

Lagra varje händelse som en enskild post i tabellen. Dvs, gör insert och inte update

Medlem sedan jan. 20013 582 inlägg
#4

Som jag skrev måste jag lägga till mer data till varje post inte skapa fler poster.

Att skapa fler poster är väl det smartaste MEN det funkar inte eftersom formatet MÅSTE vara EN post där det läggs till data efterhand....

Finns det någon som har en lösning på problemet???

Medlem sedan jan. 20013 582 inlägg
#5

Jesper T!!

Vad gör den kodsnutten som du skrev???

Kan du förklara??

//Henrik

Medlem sedan dec. 200012 464 inlägg
#6

Förstår inte varför det måste vara en post. Även om det ligger som flera poster i databasen så är det inget problem att visa det som om det vore en post.

Medlem sedan jan. 20013 582 inlägg
#7

Hej igen!

Databasen är används av ett windowsbaserat planeringsprogram och är som den är. Den går altså inte att ändra på. Det jag vill göra är att göra ett motsvarande webbaserat gränssnitt i ASP.

Min fråga igen...

Går det på något sätt att lägga till fler värden i fältet "Log" när posten uppdateras???

Som ni ser är det också "fyrkanter" i accessdatabasen som jag inte vet varför. Någon som vet??

"Log"-fältet används för att på en spårbarhet i de ändringar som gjorts i poste. (se mitt första inlägg)

Någon som har några ljusa ideer???

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#8

Skickar bilden också....

resize of databas.jpg
Medlem sedan jan. 20013 582 inlägg
#9

Ingen som kan klura ut mitt problem????

Medlem sedan apr. 20031 660 inlägg
#10

HEJ!

Det är väl inte så svårt, du har gjort det mesta redan.

- hämta bef post
- lägg till ny post till denna, med vbcrlf emellan
- uppdatera raden

Om det ska vara vbcrlf emellan eller inte beror på vad som sparas nu, och hur du formaterar det som kommer ut.

Medlem sedan nov. 20017 144 inlägg
#11

Eller som LarsG skriver, skapa en ny post vid varje tillfälle så blir det lättare att se vad som är gjort och lägger du till ex. datum och tid så får du en spårbarhet på varje post.

Medlem sedan jan. 20013 582 inlägg
#12

Hej!

Ja,ja det var väl inte så svårt.... som någon skrev.

Nu fungerar det och koden ser ut så här:

<%

dim objConn
dim objRS 
dim logOld

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=UppdragNU"
objConn.Open
Set objRS = Server.CreateObject ("ADODB.Recordset")

Uppdatera = "SELECT * FROM tblTask WHERE Id = 10016"
objRS.Open Uppdatera, objConn, adOpenStatic, adLockOptimistic

logOld = objRS("Log")
objRS("Log") = Request.Form("log") + vbcrlf + logOld

objRS.Update 
objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing

%>

För att sedan ta fram uppgifterna använder jag mig av följande kod:

<%
dim objConn
dim objRS

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=UppdragNU"
objConn.Open

Set objRS = Server.CreateObject ("ADODB.Recordset")
ObjRS.Open "tblTask", objConn, 0, 1, 2
%>

</p>
<p><strong>Resultat</strong></p>
<p>

<% =Replace(objRS("Log"),vbCrlf,"<br>") %>

<%
objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
%>

Tack för tipsen!!!

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)