Jag håller på att göra en dagbok till min klass på hemsidan.
Hur skriver jag för att samtidigt som jag visar poster så tas inlägg som är mer än ex 6 mån gamla bort. Går det?
<% If Request.QueryString("menu") = "deladmin" Then
Set RSConn = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM t_Administrators Where f_ID=" & Request.QueryString("id")
RSConn.Open SQL, Connect, 1, 2
RSConn.Delete
RSConn.Close
altså.. bara för att ta bort en post.. inte nåt med datum å sånt.. vill bara veta om koden verkar bra?
------------------ Regler är till för att ändras, inte för att följas! I wouldn't if I couldn't
Nja det är inte det mest effektiva, hantering av recordset innebär en hel del databasanrop som är helt onödiga i ditt fall.
<% If Request.QueryString("menu") = "deladmin" Then
SQL = "delete FROM t_Administrators Where f_ID=" & Request.QueryString("id")
connect.execute sql,,128
------------------ essentitia preter non sans multiplicandum
Jo, din kod innebär att gå över ån efter vatten. För att kunna skapa recordsetet måste ADO fråga databasen hur tabellen är definierad vilket man slipper om man gör en insert direkt. Jaan gjorde en jämförelse av hur mycket anrop det blir från ADO till ODBC (tabell med 4 kolumer)
Med recordset 45 anrop till ODBC
Med insert 3 anrop till ODBC
Den första siffran är propertionell mot antalet kolumner i databasen.
Om man vill slippa att hantera speciella tecken i strängar så är ett alternativ att använda ett kommandoobjekt och dynamiska parametrar i sql-strängen. Det är också fördelaktigt om man vill göra flera insert i samma tabell då man undviker omkompilering av sql-satsen. (I alla fall gäller det de flesta dbms.)
------------------ essentitia preter non sans multiplicandum
Så här brukarjag skriva när jag infogar från en databas..
<%
Set RSConn = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM t_Administrators, t_News Where t_News.f_By = t_Administrators.f_ID Order By t_News.f_ID DESC"
RSConn.Open SQL, Connect, 1, 2
Do Until RSConn.EOF
%>
.. massa html..
<%= RSConn("f_Text") %>
.. massa html..
<%
RSConn.MoveNext
Loop
RSConn.Close
Connect.Close
%>
då gör jag ju felet igen med ett anrop till ODBC..
Hur ska detta vara.. får det inte å funka :/
------------------ Regler är till för att ändras, inte för att följas! I wouldn't if I couldn't
Om du hämtar data så måste du alltid använda ett recordset.
Det som kan snabba upp saker och ting ordentligt är att använda en metod som heter getrows, vilket innebär att man hämtar allt data i ett anrop.
Om du gör en sökning på getrows i detta forum så finns det en hel del exempel på hur den används.
------------------ essentitia preter non sans multiplicandum
Om man vill slippa att hantera speciella tecken i strängar så är ett alternativ att använda ett kommandoobjekt och dynamiska parametrar i sql-strängen. Det är också fördelaktigt om man vill göra flera insert i samma tabell då man undviker omkompilering av sql-satsen.
Det där lät intressant. Lust att beskriva lite närmare?
------------------
/Morph Ever since I was eight or nine, I've been standing on the shoreline
All my life I've been waiting for something lasting