I i-or Medlem sedan nov. 2001 294 inlägg Trådstart 17 sep. 2002 12:44 #1 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?
L LarsG Medlem sedan dec. 2000 12 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 i-or Medlem sedan nov. 2001 294 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?
J Josef Medlem sedan mars 2002 3 561 inlägg Det är mindre prestandakrävande att använda LarsG´s variant.