i-orMedlem sedan nov. 2001294 inlägg SQL = "SELECT f_id, f_guestbook FROM t_members WHERE f_id = " & Trim(Session("ID"))
RecSet.Open SQL, Connect, 3, 3
f_guestbook = RecSet("f_guestbook")
RecSet.Close
SQL = "SELECT Count(*) FROM t_guestbook WHERE f_to = " & Trim(Session("ID")) & " AND f_date > '" & f_guestbook & "'"
RecSet.Open SQL, Connect, 3, 3
Messages = RecSet(0)
RecSet.Close
Jag får inte denna kod att fungera. Andra SQL-satsen räknar alla poster oavsett om f_date är större (nyare) än f_guestbook. Om jag jämför två värden i samma tabell fungerar det utan problem, men när jag ska jämföra ett datum från en tabell med en variabel (som exemplet ovan) blir det fel. Jag har provat lite fram och tillbaka med CDate men utan resultat (f_guestbook och f_date är både datetime-fält).
Vad är felet?
LarsGMedlem sedan dec. 200012 464 inlägg Det är väl något problem med format. Om du gör en join direkt i SQL så borde du slippa det problemet.
SQL = "SELECT count(f_to) FROM t_members left join t_guestbook on f_to = f_id and f_date > f_guestbook WHERE f_id = " & Session("ID")
set RecSet = Connect.execute(sql)
Messages = RecSet(0)
RecSet.Close
i-orMedlem sedan nov. 2001294 inlägg Tack så mycket för hjälpen. Efter lite modifieringar fick jag det att funka med denna kod:
SQL = "SELECT Count(*) AS Count FROM t_guestbook INNER JOIN t_members ON t_guestbook.f_date > t_members.f_guestbook AND t_guestbook.f_to = t_members.f_id WHERE t_guestbook.f_to = " & Session("ID")
RecSet.Open SQL, Connect, 3, 3
Messages = RecSet("Count")
RecSet.Close
Du skrev:
Set RecSet = Connect.execute(SQL)
Jag skriver:
Set RecSet = Server.CreateObject("ADODB.RecordSet")
RecSet.Open SQL, Connect, 3, 3
Är det prestandasnålare att skriva på ditt sätt?
JosefMedlem sedan mars 20023 561 inlägg Det är mindre prestandakrävande att använda LarsG´s variant.