Just nu i M3-nätverket
Jump to content

Skriva till databasen


TheMaraja

Recommended Posts

Hejsan håller på med ett projekt i skolan. Först ska man hämta ett värde från databasen och skriva ner i en variabel, sedan ska man använda sig av den variabeln när man skrier till databasen. Jag får det inte att fungera, man kan inte öppna recordset två gånger...snälla någon som har en lösning...här är en bit av koden...

 

Tack //Mary - Päry

 

 

set objConnection = server.CreateObject("ADODB.Connection")'här instansierar vi ett connection objekt.

set objRecordset = server.CreateObject("ADODB.Recordset")

 

objConnection.Open strConnect 'strConnect hämtar vi från include filen dataconnection.asp

 

strSQL = " "

strSQL = strSQL & "SELECT MAX(id) AS max_id FROM message;"

 

 

objRecordset.Open strSQL, objConnection 'adOpenDynamic, adLockUnspecified, adCmdText 'cursor type...betyder att den läser uppifrån o ner

 

intMessageId = objRecordset("max_id")

intMessageId = intMessageId + 1

'response.write intMessageId

 

 

strSQLInsert = " "

strSQLInsert = strSQLInsert & "INSERT INTO message(id, to_email, from_email, subject, message) VALUES('"& intMessageId & "','"& strTo & "','" & strFrom & "','" & strSubject & "','" & strtext & "');"

 

objRecordset.Open strSQLInsert, objConnection 'adOpenDynamic, adLockUnspecified, adCmdText

Link to comment
Share on other sites

1. Du stänger inte recordsetet innan du öppnar det igen.

2. Du behöver inte skapa ett recordset för en INSERT, du får ju inte ut några data (förutom hur många poster som påverkas). Gör istället en enkel

objConnection.execute(strSQLInsert)

 

/Niklas

 

Link to comment
Share on other sites

Det där är ingen bra metod. Lägg till en räknare/identity för tabellen istället. Då skapas ett nytt unikt värde vid insert.

 

 

Om du gör en insert så behövs det inget recordset.

 

strSQLInsert = " "

strSQLInsert = strSQLInsert & "INSERT INTO message(id, to_email, from_email, subject, message) VALUES('"& intMessageId & "','"& strTo & "','" & strFrom & "','" & strSubject & "','" & strtext & "');"

 

objConnection.execute strSQLInsert,,128 ' adExecuteNoRecord

 

 

Link to comment
Share on other sites

Koden blir alltså:

 

set objConnection = server.CreateObject("ADODB.Connection")

set objRecordset = server.CreateObject("ADODB.Recordset")

 

objConnection.Open strConnect

strSQL = ""

strSQL = strSQL & "SELECT MAX(id) AS max_id FROM message;"

 

 

objRecordset.Open strSQL, objConnection 'adOpenDynamic, adLockUnspecified, adCmdText

 

intMessageId = objRecordset("max_id")

intMessageId = intMessageId + 1

 

objRecordset.Close

 

strSQLInsert = ""

strSQLInsert = strSQLInsert & "INSERT INTO message(id, to_email, from_email, subject, message) VALUES('"& intMessageId & "','"& strTo & "','" & strFrom & "','" & strSubject & "','" & strtext & "');"

 

objConnection.Execute(strSQLInsert)

 

objConnection.Close

 

[inlägget ändrat 2002-10-24 13:44:17 av Fribbe]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...