webForumDet fria alternativet

Vad är det för fel på denna enkla fråga

Databaser & SQL

11 svar · 331 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Problemet med nedan är att det skapas en massa poster med samma datum. Om inte ett datum finns i databasen så ska det skapas, annars ska det uppdateras. Nu skapas det nya rader med samma datum vid varje träff... Är jag för trött eller ???

<% 'Kollar om datumet finns. Om ej så ska raden skapas.
	sql = "SELECT * FROM T_site_statistik WHERE datum = #" &varThisDate &"# AND site_url = '" &varPagePath &"'"
	Response.Write ("<hr>Söker efter dagens rad..." &sql &"<hr>")
	set rs = objConn.execute(sql) 
	if rs.eof then
		'Dagens data finns ej. Ska skapas.
		varHitsToday = varHitsToday +1
		Query = "Insert into T_site_statistik "
		Query = Query & "(senaste_ip, datum, tillhor_ar, tillhor_manad, tillhor_vecka, veckodag, site_url, traffar_idag) "
		Query = Query & "Values ('" &varBesokareIp & "',"
		Query = Query & "#" & date & "#,"
		Query = Query & "" & varThisYear & ","
		Query = Query & "" & varThisMonth & ","
		Query = Query & "" & varThisWeek & ","
		Query = Query & "" & varThisWeekday & ","
		Query = Query & "'" & varPagePath & "',"
		Query = Query & "" & varHitsToday & ""
		Query = Query & ")"
		Response.Write ("<hr>Datum finns ej: " &Query &"<hr>")
		objConn.execute(query)
	else ....

Söker efter dagens rad...SELECT * FROM T_site_statistik WHERE datum = #2004-10-10# AND site_url = '/site_unga/mall_innehall_start.asp'

Medlem sedan juni 200032 967 inlägg
#2

Hmm.

Jag läser inte ordentligt. Sorry, återkommer. :)

Medlem sedan maj 20012 080 inlägg
#3

Datumet och "site_url" finns definitivt i databasen så det borde bli en match. Känns som att det är datumdelen i frågan som blir fel.... ????

Medlem sedan maj 20012 080 inlägg
#4

Jag hittade felet men jag förstår inte riktigt varför det blir som det blir.

Vad är det för skillnad på:

sql = "SELECT * FROM T_site_statistik WHERE datum = #" &date &"# AND site_url = '" &varPagePath &"'"

och

varThisDate = date
sql = "SELECT * FROM T_site_statistik WHERE datum = #" &varThisDate &"# AND site_url = '" &varPagePath &"'"

???

Medlem sedan juni 200032 967 inlägg
#5

Det beror på hur date resp. varThisDate ser ut.

Medlem sedan maj 20012 080 inlägg
#6

Förlåt.... ovan gjorde inte någon skillnad. Problemet kvarstår :(

Medlem sedan maj 20012 080 inlägg
#7

Jag använder ju date i sql strängen som jag printar ut ovan. Det ser rätt ut tycker jag... grrr...

Medlem sedan maj 20012 080 inlägg
#8

Är "datum" en felaktigt fältnamn i Access 2003 ?

Medlem sedan juni 200032 967 inlägg
#9

mattiasnordin skrev:

Är "datum" en felaktigt fältnamn i Access 2003 ?

Om det är det, då får du ett felmeddelande när du exekverar frågan.

Om jag vore du skulle jag kika efter i access hur det ser ut när du lagrat posten.

Medlem sedan maj 20012 080 inlägg
#10

Det var knepigt det här....

Det ser rätt ut... Förutom att jag får multippla poster på samma datum.

Medlem sedan maj 20012 080 inlägg
#11
<% varThisDate = date
	varThisWeek = DatePart("WW", date)
	varThisYear = DatePart("YYYY", date)
	varThisMonth = DatePart("M", date)
	varThisWeekday = DatePart("W", Date) 
	varBesokareIp = request.servervariables("REMOTE_ADDR")
	varHitsToday = 0
	varHitsTodayStaff = 0
	varPagePath = Request.ServerVariables("SCRIPT_NAME")
%>

% 'Kollar om datumet finns. Om ej så ska raden skapas.
	sql = "SELECT * FROM T_site_statistik WHERE site_url = '" &varPagePath &"' AND datum = '" &date &"'"
	Response.Write ("<hr>Söker efter dagens rad..." &sql &"<hr>")
	set rs = objConn.execute(sql) 
	'response.write rs("ID")
	if rs.eof then
		'Dagens data finns ej. Ska skapas.
		varHitsToday = varHitsToday +1
		Query = "Insert into T_site_statistik "
		Query = Query & "(senaste_ip, datum, tillhor_ar, tillhor_manad, tillhor_vecka, veckodag, site_url, traffar_idag) "
		Query = Query & "Values ('" &varBesokareIp & "',"
		Query = Query & "'" & date & "',"
		Query = Query & "" & varThisYear & ","
		Query = Query & "" & varThisMonth & ","
		Query = Query & "" & varThisWeek & ","
		Query = Query & "" & varThisWeekday & ","
		Query = Query & "'" & varPagePath & "',"
		Query = Query & "" & varHitsToday & ""
		Query = Query & ")"
		Response.Write ("<hr>Datum finns ej: " &Query &"<hr>")
		objConn.execute(query)
	else...

OK... Det fungerar om jag har en webläsare öppen och klicker på "för unga" och sedan "för vuxna" (se: https://www.projektnelson.se )
Men så fort jag surfar in från en annan dator så skapas en ny post fastän den utprintade sqlfrågan stämmer till 100% med det den ska leta efter i databasen. Informationen FINNS i databasen. Det borde bli en träff. Grrr....

Blir det några konstigheter med

varPagePath = Request.ServerVariables("SCRIPT_NAME")

och includerade sidor???

Medlem sedan maj 20012 080 inlägg
#12

Jag gav upp och gjorde en helt ny kod. Denna fungerar....

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)