Kan någon kommentera min lösning. >Addera = "Select * From tblMilage" Ytterligare en sak är att du skall alltid använda samma connection, inte skapa flera stycken på samma sida. Recordset skapar du snabbast genom att skriva:Kommentarer, feedback
kan inte asp så bra.
Finns det nåt jag gör som man borde göra på annat sätt?
"i'm learning by doing"
se www.ingolfsson.se/mil/mil.asp
<code>
<!-- #include file="adovbs.inc" -->
<%
IF Request.QueryString("DO") = "SKICKA" THEN
datum = server.HTMLEncode(Request.Form("datum"))
destination = server.HTMLEncode(Request.Form("destination"))
km = server.HTMLEncode(Request.Form("km"))
kommentar = server.HTMLEncode(Request.Form("kommentar"))
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/dbMil.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From tblMilage"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.ADDNEW
RecSet("MileDate") = datum
RecSet("MileDestination") = destination
RecSet("MileMile") = km
RecSet("MileComment") = kommentar
RecSet.UPDATE
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Response.Redirect "mil.asp"
END IF
%>
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Tack för medverkan</title>
</head>
<body style="font-family: Verdana; font-size: 8pt">
Lägg/ändra till företag
<%
' Kopplar upp mot databas
' -------------------------------------------------------------------------------------------------------------------------
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/dbMil.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
ListCust = "Select * From tblCustomer ORDER BY CustName ASC"
RecSet.Open ListCust, Connect, adOpenStatic, adLockOptimistic
%>
<form method="post" action="mil.asp" name="mileage">
<table border="0" style="border-collapse: collapse; font-family:Verdana; font-size:8pt" width="720" id="table2">
<tr>
<td width="120">
Kunder:
<td width="673">
<select SIZE="1" NAME="ftg" onchange="mileage.submit();">
<option value="">Välj företag</option>
<% Do While Not RecSet.EOF %>
<option value="<% = RecSet("CustName") %>,<% = RecSet("CustMile") %>"<% if Request.Form("ftg") = RecSet("CustName") & "," & RecSet("CustMile") then response.write("selected")%>><% = RecSet("CustName") %></option>
<%
'Till nästa stad
RecSet.MOVENEXT
LOOP
'Städar upp
RecSet.CLOSE
SET RecSet=NOTHING
%>
</select>
</td>
</tr>
<tr>
<td width="120">
<td width="673">
</td>
</tr>
</table>
</form>
<%
dim Value
dim Mile
dim Customer
Value=Request.Form("ftg")
If Value<>"" Then
Customer = left(Value, instr(Value, ",")-1)
Mile = mid(Value, instr(Value, ",") + 1, len(Value) - instr(Value, ","))
'response.write(Customer)
End If
%>
</font></b>
<form method="POST" action="mil.asp?DO=SKICKA">
<table border="0" style="border-collapse: collapse font-family:Verdana; font-size:8pt" width="720" id="table1">
<tr>
<td width="120">
Datum:
</td>
<td width="624">
<%
Dim TodayDate
Dim NrOfDaysToAd
NrOfDaysToAd = - 30
Response.Write(TodayDate)
%><select name="datum">
<!--Detta för att få idag överst-->
<!--option><% Response.Write(Date) %></option-->
<%
'--------------------------------------------------------------------
'Lopp som fyller Combon med datum och så många dagar som skall genereras
'--------------------------------------------------------------------
do until NrOfDaysToAd = 30
'--------------------------------------------------------------------
' Skapar datumen minus 1 vecka och 2 veckor framåt
'--------------------------------------------------------------------
TodayDate = Date + NrOfDaysToAd
'--------------------------------------------------------------------
'Lägger på ett så att vi kommer upp till 30
'--------------------------------------------------------------------
NrOfDaysToAd = NrOfDaysToAd +1
%>
<option <% if TodayDate = Date then response.write("selected")%>><%= TodayDate %></option>
<%
loop
%>
</select>
</td>
</tr>
<tr>
<td width="92">
Kund:</td>
<td width="624">
<input name="destination" size="20" value="<%response.write(Customer)%>"></td>
</tr>
<tr>
<td width="92">
Kilometer:
</td>
<td width="624">
<input name="km" size="3" value="<%response.write(Mile)%>"></td>
</tr>
<tr>
<td width="92">
Kommentar:
</td>
<td width="624">
<input type="text" name="kommentar" size="43">
</td>
</tr>
<tr>
<td width="92"> </td>
<td width="624">
<input type="submit" value="Skicka" name="B1">
<input type="reset" value="Återställ" name="B2">
</td>
</tr>
</table>
</form>
<br>
<%
' Kopplar upp mot databas
' -------------------------------------------------------------------------------------------------------------------------
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/dbMil.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
ListMile = "Select * From tblMilage ORDER BY MileDate ASC, MileCounter ASC"
RecSet.Open ListMile, Connect, adOpenStatic, adLockOptimistic
%>
<table border="0" style="border-collapse: collapse" width="717">
<tr>
<td width="95"><b><font size="1">Datum</font></b></td>
<td width="233"><b><font size="1">Kund</font></b></td>
<td width="78"><b><font size="1">Kilometer</font></b></td>
<td><b><font size="1">Kommentar</font></b></td>
</tr>
<% Do While Not RecSet.EOF %>
<tr>
<td width="95">
<!--a target="underst" href="Cust1.asp?ID=<% = RecSet("MileCounter") %>"--><font size="1">
<% = RecSet("MileDate") %> </font><!--/a--><font size="1">
</font>
</td>
<td width="233">
<font size="1">
<% = RecSet("MileDestination") %>
</font>
</td>
<td width="78">
<font size="1">
<p align="right">
<% = RecSet("MileMile") %>
</font>
</td>
<td>
<font size="1">
<% = RecSet("MileComment") %>
</font>
</td>
</tr>
<%
'Till nästa stad
RecSet.MOVENEXT
LOOP
'Städar upp
RecSet.CLOSE
SET RecSet=NOTHING
Connect.Close
SET Connect=NOTHING
%>
<tr>
<td width="95">
</td>
<td width="233">
<p align="right"><b><font size="1">Summa:
</font></b></td>
<td width="78">
<b><font size="1">
<p align="right">
<%
' Kopplar upp mot databas
' -------------------------------------------------------------------------------------------------------------------------
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/dbMil.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
ListMile = "SELECT SUM(MileMile) AS SummaTotal from tblMilage"
RecSet.Open ListMile, Connect, adOpenStatic, adLockOptimistic
%>
<%=RecSet("SummaTotal") / 10 %> mil
</font></b></td>
<td>
<b><font size="1">
<%=RecSet("SummaTotal") / 10 * 9%> kr
</font></b></td>
</tr>
</table>
</body>
</html>
<%
RecSet.CLOSE
SET RecSet=NOTHING
Connect.Close
SET Connect=NOTHING
%>
</code>
/TSv: Kommentarer, feedback
<RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
< RecSet.ADDNEW
< RecSet("MileDate") = datum
< RecSet("MileDestination") = destination
< RecSet("MileMile") = km
< RecSet("MileComment") = kommentar
< RecSet.UPDATE
Om detta har det skrivets hur mycket som helst. Jag skulle rekommendera att du läste artiklarna här på
Pellesoft om ASP och databaser.
Först och främst använd ALDRIG astrix när du skall hämta ifrån en databas, lägg ner lite tid och specifisera vilka fält som du vill ha med.
Den främsta orsaken är prestandadvinst, genom att du kanske inte alltid behöver alla fälten, och
databasen behöver inte leta igenom för varje fält.
Du har inget skydd för SQLinjection.
I övrigt så tycker jag inte om den typ av uppdatering(med recordsätt), använd dig utav SQL istället.
Kolla min Artikel [Ett Administrations script för webb baserad databas Del 1] där bör du få lite uppslag.Sv:Kommentarer, feedback
set rst1 = con.execute(select....)
rst1.close
set rst2 = con.execute(select....)
rst2.close
set con = nothing