webForumDet fria alternativet

Vill inte räkna

ASP

17 svar · 236 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1

Vad är det som är fel på denna koden?

SQL = "UPDATE smclads SET visad_ggr=visad_ggr+1 WHERE id=" & smclrs("id")
smclrs.Execute(SQL)

Jag har provat att ha kolumnen "visad_ggr" som int, nchar och numeric.
Är det koden som är fel (Står rätt med response.write SQL) eller är det fel på tabellen i ms-sql?

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#2

SQL-syntaxen är korrekt och kolumnen borde vara integer(i alla fall numerisk), men det jag sitter och undrar på är att du använder smclrs när du gör execute. När du bygger din SQL så använder du ju den som om den vore ett recordset.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#3

Hur skulle du skriva?

Jag har bara kopierat annan text från scriptet.

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#4

När man gör en execute så behöver man ett connectionobject (eller commandobject går också bra)

  set connection = server.createobject("adodb.connection")

  connection.open "dsn=..."
  set smclrs = ...

  sqlStr = SQL = "UPDATE smclads SET visad_ggr=visad_ggr+1 WHERE id=" & smclrs("id")
  connection.execute sqlStr

ungefär så

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#5

Jag har skrivit det innan, men ville posta för mycket här bara... :-)

Men den plussar ändå inte?

Nu är kolumnen int, men det händer ändå inget.

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#6

Ok, först kan du lägga in en koll på att någon post verkligen uppdateras


connection.execute sqlStr,rows,128
if  rows = 0 then
    response.write "Inga rader uppdaterades" & <br>
end if

Ett annat problem kan vara att det ligger null och inte 0 i kolumnen visad_ggr och i så fall så kommer det att förbli null då null + 1 blir null.

Man kan kontrollera om ett fält är null i SQL med villkoret

columnName is null

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#7

jag använder Enterprise Manager för att kolla på databasen. De gamla annonserna har ju fått värdet null, men den nya som jag gjort, och bara kollar har värdet 0. (Alla nya som sätts in får det)

Jag har även lagt in samma script på om man svarar på annonsen. Det funkar perfekt. Den visar hur många som svarat på annonsen.

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#8

Hur är det nu? Uppdateras det någon rad? Om inte så kanske du kan lägga upp lite mer kod så ...

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#9

Jag använder precis samma kod på båda scripten, på det ena stället så funkar det.

Kan det ha nånting att göra med att jag lägger koden i ett case? I det fall det inte fungerar alltså.

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#10

Tja, då låter det ju mer som om man aldrig utför den kod där man gör update. Dvs att det är någon glitch i logiken i din case.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#11

Hur ska man bära sig åt då?

Kan man inte ha
<%
kod
%>

var man än vill ha den?

Typ t.om i en tabell? Nu har jag ju inte det, men som exempel...

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#12

Jo, det går ju bra att stoppa in kod inline så där. Det man bör tänka på är att VB är känsligt för radbrytningar, dvs man kan inte dela upp statement på flera rader utan att ha fortsättningstecken och inte heller kan man ha flera statements på samma rad utan att ha ett : emellan.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#13

Men vad är det som inte funkar då?

lite tradigt när det inte går som man vill! :-/

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#14

Du verkar vara ovilliig att visa någon kod ;) . Har lite svårt att något vettigt annars.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#15

Det är bara det att det är fetmycket kod! Det är ett köpt script som jag blivit ombedd att lägga till lite nya funktioner i.

ska jag maila dig det istället? Det är för mycket att visa här.

------------------
Skriv ut den med response.write så ser du vad som är fel.

Medlem sedan dec. 200012 464 inlägg
#16

Ok, men jag hinner nog inte titta så mycket i kväll. Måste ju jobba lite också.
Min mailadress finns i min profil,
klicka på ikonen med ansiktet och frågetecknet.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 200012 464 inlägg
#17

Okej, jag fick ditt mail. Efter det så har jag inte lyckats starta min mailklient (jag hann dock ta ut en papperskopia) så jag får lägga ett svar här.

Det som jag kan säga är ju att i början på din sub så har du satt upp
on error resume next
men du har ju ingen egen felhantering vid dina anrop där du gör din update. Det kan ju gå fel där så du kan ju lägga in en on error goto 0 innan.

Sen så undrar jag varför du öppnar en ny connection, du har ju redan en (smcldataconn).

Annars så får du väl försöka lägga in lite traceutskrifter på lämpliga ställen.

Samamnfattningsvis, så har jag inte sett något definitivt fel.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000667 inlägg
#18

Hmmm. Skickades mailet som HTML? Sorry! Tänkte inte på det!!

Öppnade en ny connection senare för att prova. Som jag sa.

Kan du rekommendera hur man ska skriva för att det ska bli rätt? Kan man lägga det innan in error resume next?

------------------
Skriv ut den med response.write så ser du vad som är fel.

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