Jag har ett problem som jag inte förstår, har gjort det här 1000 gånger förut, men nu funkar det inte.... Hejsan, Du anger inte vilket felmeddelande du får? Bifoga gärna det. Nej, jag har inte klippt in texten.... Felmeddelandet som jag får är som följande: Varför har du en WHERE-klausul i SQL-frågan när du sedan använder AddNew? Jag vet faktiskt inte varför jag använder WHERE, men jag har lärt mig så från början och de har alltid funkat... anledningen till att han kör en WHERE sats är att han inte vill få ut några verkliga rader, utan bara själva strukturen för tabellen, för att därigenom kunna snabbt gå vidare och börja fylla på med en ny rad...rs.Update
Jag ska helt enkelt lägga till en rad i en databas, men funkar inte som de ska!
<code>
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "DSN=spec"
SQL = "SELECT * Fram tabell WHERE 1=2"
rs.Open SQL, MinCon, 1, 2
rs.AddNew
rs("kopare") = Request.QueryString("kopare")
rs.Update
rs.Close
</code>
När jag sedan ska köra sidan så kommer det ett felmeddelande, "Fel i rad" på den raden där jag skrivit "rs.Update"!!
Varför? Sv: rs.Update
Om det är texten du klippt in, så står det ...SELECT * Fram...
...borde vara From...
...men det kanske inte genererar det felet...?
//TommySv: rs.Update
Sen är det nästan snabbare att skriva:
<code>
Set MinCon = Server.CreateObject("ADODB.Connection")
MinCon.Open "DSN=spec"
MinCon.Execute("insert into tabell (kopare) values='" & request("kopare") & "'")
Set MinCon = Nothing
</code>
Du minskar felkällorna. Du får en snabbare funktion för du ansluter inte till databasen och skapar ett client sided recordset. Inte minst, koden blir renare och det är färre objekt att arbeta med.Sv: rs.Update
Så det är SELECT * From som jag har skrivit...Sv: rs.Update
<code>
Microsoft OLE DB Provider for ODBC Drivers (0x80040E2F)
[Microsoft][Drivrutin för ODBC Microsoft Access]Fel i rad
/spec/plats/reg_kvittens.asp, line 33
</code>
Här kommer även hela koden inklippt, satt inte vid min egna dator när jag skrev frågan, så jag skrev lite förkortat bara...
<code>
<!-- #include file="../inc/connection.inc" -->
<%
SQL = "SELECT * From kvittenser WHERE 1=2"
rs.Open SQL, MinCon, 1, 2
rs.AddNew
If Request.QueryString("kund_typ") = "Befintlig" Then
rs("kopare_id") = Request.QueryString("kopare")
Else
rs("kopare_id") = 0
rs("kopare") = Request.QueryString("namn")
End If
rs("datum") = Session("datum")
rs("frakt") = Request.QueryString("frakt")
If Request.QueryString("frakt") = 3 Then
rs("ovrig_frakt") = Request.QueryString("ovrig_frakt")
End If
rs("summa") = Request.QueryString("summa")
rs("moms") = Request.QueryString("moms")
rs("ore") = Request.QueryString("ore")
rs("typ") = Request.QueryString("typ")
rs.Update ' line 33
rs.Close
%>
</code>
Kan även nämnas att jag fått det att funka en gång, men så fort det finns en rad i tabellen i databasen så går det inte...Sv: rs.Update
<code>
SELECT * From kvittenser
</code>
borde räcka.
Mvh, JanneSv: rs.Update
Men jag ska prov och köra utan, borde ju va lättare!
Jag har kollat databasen och jag använder RÄKNARE, å inte TAL...Sv: rs.Update
eftersom iden är att lägga till en rad och inte läsa in en rad, behöver han heller inte låta SQL scriptet köra en verklig hämtning av data.