Om jag skickar en text så vill jag att en post skall läggas till, men om posten redan finns på aktuellt datum så skall posten uppdateras. Hej, du måste specificera vilken databasmotor du har, annars är det svårt att råda - det finns många varianter. Du kan ju öppna ett updaterbart recordset med datumet som vilkor. Om det inte finns gör du en addnew först: ok, det ser krångligt ut, men ok, det är väl så jag får göra(trodde det också) Ett annant sätt är ju att först göra en select som kollar om det finns någon post och beroende på det göra en insert eller update, om det är enklare är väl upp till dej att avgöra... Vad är det som är krångligt? Menar du att programmera?<br>Update eller insert?!
Något tips?Sv: Update eller insert?!
Sv: Update eller insert?!
<code>
<%
Dim con
Dim rs
Dim varDate
Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM TabellNamn WHERE FieldName = #" & varDate & "#", con, adOpenKeyset, adLockOptimistic
If rs.EOF Then
rs.AddNew
rs("FieldName") = varDate
End If
rs("Annatfält") = "Nytt värde"
rs("Annatfält") = "Nytt värde"
rs("Annatfält") = "Nytt värde"
rs.Update
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
%>
</code>Sv: Update eller insert?!
Tack för svar.Sv: Update eller insert?!
SELECT COUNT(*) AS Antal FROM tabell WHERE datum = #2002-12-24#
Detta ger ett resultat med en post och en kolumn som innehåller antalet poster med det datumet.
/JohanSv: Update eller insert?!
<br>
Annars kan du först köra en Update och kontrollera om några poster Updateras. Om det inte gör det kör du efter det en Insert:
<code>
Dim con
Dim rs
Dim varDate
Dim Records
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("databas.mdb")
con.Execute "UPDATE TabellNamn SET Fält1 = 'Nytt värde' WHERE FieldName = #" & varDate & "#", Records
If Records = 0 Then
con.Execute "INSERT INTO TabellNamn (FieldName, Fält1) VALUES(#" & varDate & "#, 'Nytt värde')"
Response.Write "Post har lagts till"
Else
Response.Write "Post har updaterats"
End If
con.Close
Set con = Nothing
</code>