Toon posts:

[ASP] probleempje met een bezoekersteller

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb dus een prob met een bezoekersteller die ik zelf heb gemaakt.

In Access heb ik een database gemaakt met een tabel counter met 1 veld luisterend nar de naam counter. Nu wil ik iedere keer dat iemand de pagina opent ofzo dat er een connectie gemaakt wordt met de database en dat die de waarde uit het veld counter haalt. Die vermeerdert hij dan met 1 en slaat die terug op in hetzelfde veld.

Dit is de code die ik gebruik om de pagina te verbinden en de teller te laten vermeerderen enzovoort ... (de cijfertjes zijn de regelnummers
code:
1
2
3
4
5
6
7
8
9
10
11
12
1.<%
2.SET Con = Server.CreateObject( "ADODB.Connection" )
3.Con.ConnectionString 4.= "Provider=Microsoft.Jet.OLEDB.4.0;"_
5.& "Data source = 6.c:\inetpub\wwwroot\stpfestival\db\festival.mdb"
7.Con.Open
8.
9.sqlString = "SELECT counter FROM counter"
10.Con.Execute sqlString
11.counter = counter + 1
12.
13.Con.Close
14.%>

Maar dan krijg ik een error:
code:
1
2
3
4
5
Microsoft JET Database Engine fout '80040e14' 

Syntax error in FROM clause. 

/stpfestival/default.asp, regel 9

Volgens mij is in het SELECT statement niets verkeerd, of toch?

Wie kan mij helpen om dit te verbeteren?

  • Yoda
  • Registratie: December 1999
  • Laatst online: 07-11-2025

Yoda

Can you feel it?

Probeer het eens zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
dim iCounter

SET Con = Server.CreateObject("ADODB.Connection")
SET Rs = Server.CreateObject ("ADODB.Recordset")
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"_
& "Data source = c:\inetpub\wwwroot\stpfestival\db\festival.mdb"
Con.Open

sqlString = "SELECT counter FROM counter"
Rs.open sqlString, Con
iCounter = rs("counter") + 1
rs("counter") = iCounter
rs.update

Rs.Close
Con.Close

Set Rs = nothing
Set Con = nothing

Verwijderd

Topicstarter
nee, het werkt niet, ik krijg weer dezelfde error :'(

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Om alles duidelijk te maken voor jezelf geef je alle benamingen maar dezelfde benamingen anders zou je de benamingen wel eens kunnen begrijpen en weten wat die benamingen precies benoemen?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Zet counter eens tussen [] Waarschijnlijk is counter een sys-tabel of een sys-functie:

SELECT [counter] From counter

Als het nog niet werkt ff je tabel hernoemen. tblCounter is de meest gebruikte methode om tabellen mee aan te duiden. Laat het ff weten of het werkt!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14:16

Crazy D

I think we should take a look.

Zie voetenzalf.
En verder snap ik niet zo goed waarom je select gebruikt...
update tabelletje set veldje = veldje + 1
Of is dat te simpel :P

Exact expert nodig?


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 05 april 2002 13:30 schreef voetenzalf het volgende:
[..]
tblCounter is de meest gebruikte methode om tabellen mee aan te duiden. Laat het ff weten of het werkt!
Ligt er maar net aan welke standaard je gebruikt he.. maar die discussie is al een keer eerder geweest.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Blizard
  • Registratie: September 2001
  • Niet online
Inderdaad ff voor het jezelf een beetje handig te houden : gebruik "tags" voor je naampjes. Dan weet je na een weekje nog wat nou juist wat is.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14:16

Crazy D

I think we should take a look.

Op vrijdag 05 april 2002 13:31 schreef dusty het volgende:
Ligt er maar net aan welke standaard je gebruikt he.. maar die discussie is al een keer eerder geweest.
Ik ben benieuwd in welke standaard men tabelnamen en veldnamen gelijk maakt ;)

Exact expert nodig?


Verwijderd

Topicstarter
Op vrijdag 05 april 2002 13:31 schreef Crazy_D het volgende:
En verder snap ik niet zo goed waarom je select gebruikt...
update tabelletje set veldje = veldje + 1
Of is dat te simpel :P
ik moet echter wel een zin geven in de aard van Je bent bezoeker nummer [cijfer] --> dus select is wel degelijk nodig

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14:16

Crazy D

I think we should take a look.

Ah ok.
Dan doe je eerst de update, en dan een select query :)
(oh wacht het geen nou juist net fout met je select...)
Begin iif eerst even met je tabel en veldnaam niet dezelfde naam te geven, dan weet je iig zeker dat dat niet het probleem is dat het niet werkt...

Exact expert nodig?


Verwijderd

Werkt het al?

Ga nou niet een ander punt openen, zorg eerst dat dit probleem ff wordt gefixed. :)

Verwijderd

Topicstarter
euhm, het select deel werkt nu al :) maar nu nog de update, en die wil ook al niet lukken *argh* :'(
code:
1
sqlString = "UPDATE tblcounter SET counter=" & counter

wat is hier nu weer mis mee? niks toch :?

Verwijderd

welke helft? :) Maar met die [] was dus het probleem, is namelijk wel makkelijk om te weten!

Verwijderd

Zou je bij de UPDATE ook geen [] gebruiken? Je kunt natuurlijk ook counter veranderen in teller om evt conflicten te voorkomen.

Verwijderd

Topicstarter
Op vrijdag 05 april 2002 14:10 schreef Buikwortel het volgende:
Zou je bij de UPDATE ook geen [] gebruiken? Je kunt natuurlijk ook counter veranderen in teller om evt conflicten te voorkomen.
euhm, de tabelnaam is al veranderd in tblcounter, dus moet ik geen namen meer veranderen, en in de SELECT heb ik ook geen [] gebruikt

Verwijderd

Ik bedoel UPDATE tblcounter SET [counter] = "&counter

Verwijderd

Topicstarter
code:
1
2
3
4
5
Microsoft JET Database Engine fout '80040e14' 

Syntax error in UPDATE statement. 

/stpfestival/default.asp, regel 12

Dit is de error die ik krijg bij het UPDATE statement.

En dit is het UPDATE statement die ik gebruik, wat is hier nu toch verkeerd aan?
code:
1
sqlString = "UPDATE tblcounter SET counter=" & counter

Verwijderd

Topicstarter
Op vrijdag 05 april 2002 14:23 schreef Buikwortel het volgende:
Ik bedoel UPDATE tblcounter SET [counter] = "&counter
als ik dit gebruik, dan krijg ik geen foutmeldingen meer, maar als ik de pagina vernieuw krijg ik iedere keer hetzelfde nummer nl.:1

er moet dus ergens een probleempje zijn nu met het optellen
ik gebruik het volgende:
code:
1
counter = counter + 1

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Gebruik een select *

Verwijderd

Soz,

Thesrv wat is dit voor oplossing?

Verwijderd

Probeer dit eens dan:

UPDATE tblcounter SET [counter] = [counter] + 1

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Op vrijdag 05 april 2002 14:26 schreef voetenzalf het volgende:
Soz,

Thesrv wat is dit voor oplossing?
code:
1
2
3
4
5
6
7
8
Set vraag = Server.CreateObject("ADODB.Recordset")
vraag.ActiveConnection = conn
vraag.locktype = adLockOptimistic
vraag.open "SELECT * FROM files"
vraag.Addnew
vraag("kolom") = variable
vraag.update
vraag.close

Je moet trouwens wel <!-- #include file="adovbs.inc" --> erin hebben.

Verwijderd

Dit is een oplossing, alleen ik zou geen * gebruiken. Dat is nooit goed voor je performance als je veel velden heb, een * is voor luie mensen.

Verwijderd

Topicstarter
Op vrijdag 05 april 2002 14:28 schreef Buikwortel het volgende:
Probeer dit eens dan:

UPDATE tblcounter SET [counter] = [counter] + 1
nee, dan krijg ik weer een error
code:
1
2
3
4
5
6
7
8
Compilatiefout Microsoft VBScript fout '800a0401' 

Einde van de instructie wordt verwacht 

/stpfestival/default.asp, regel 11 

sqlString = "UPDATE tblcounter SET [counter] =" [counter] + 1
------------------------------------------------^

Verwijderd

Ja duh... volgens mij heb je een SQL tutorial nodig? :?

edit:
sorry, ik hen een slechte bui :Y)

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Op vrijdag 05 april 2002 14:30 schreef voetenzalf het volgende:
Dit is een oplossing, alleen ik zou geen * gebruiken. Dat is nooit goed voor je performance als je veel velden heb, een * is voor luie mensen.
Als je performance wil moet je geen access gebruiken

Verwijderd

sqlString = "UPDATE tblcounter SET [counter] =" [counter] + 1
Je hebt een tikfoutje gemaakt...als je de qoutjes eens aan het eind van je string zet kan het wel eens gaan werken

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

code:
1
sqlString = "UPDATE tblcounter SET [counter] = [counter] + 1"

Zoek het verschil (net iets te langzaam)

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Als je het zo wil zou ik & er tussen zetten:
code:
1
sqlString = "UPDATE tblcounter SET [counter] =" & [counter] + 1

Verwijderd

Beste gasten, met SQL(wat je dus ook in Access kan gebruiken :) ) kan je in je update query gewoon eentje erbij op tellen. Dit begint zo langzamerhand een vrijdag middag discussie te worden |:(

Thesrv ga ff zelf posten over perfomance of zo

Verwijderd

sqlString = "UPDATE tblcounter SET [counter] = [counter] + 1"

en nu selecteren dan ctrl+c en dan ctrl+v

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Op vrijdag 05 april 2002 14:38 schreef voetenzalf het volgende:
Beste gasten, met SQL(wat je dus ook in Access kan gebruiken :) ) kan je in je update query gewoon eentje erbij op tellen. Dit begint zo langzamerhand een vrijdag middag discussie te worden |:(

Thesrv ga ff zelf posten over perfomance of zo
Moeilijk he typen het is TheSVR

Verwijderd

Waar slaat dat & nou weer op? Dit is geen variabele DIT IS GEWOON DE COMPLETE SQL STRING. Pak de code van buikwortel, die is goed. Die gebruik je als update query en dan werkt het!

Gewoon die knippen en plakken

[ANTWOORD]
Ja
[/ANTWOORD]

Verwijderd

Maar uh.....is het nou gelukt of hoe zit dat?

Verwijderd

Topicstarter
het is gelukt, ik krijg geen foutmelding meer maar nu lukt het me niet om de output te krijgen van:
Je bent bezoeker nummer: [getal van de database]
ik krijg enkel:
Je bent bezoeker nummer: [en geen cijfer van uit de database]

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Een gewone select met je aangepaste tabelnaam doet het niet?
Ik denk dat het dan eerder ergens anders in je prog zit.

Verwijderd

Topicstarter
Op vrijdag 05 april 2002 15:13 schreef Goodielover het volgende:
Een gewone select met je aangepaste tabelnaam doet het niet?
Ik denk dat het dan eerder ergens anders in je prog zit.
ik doe nu gewoon de SELECT, die is jist want daar krijg ik geen foutmelding meer van (dus het is eerst een 1ste maal select, dan de update en dan nogmaals select om de nieuwe counter te selecteren)

maar de output werkt gewoon niet, ik doe gewoon:
code:
1
Je bent bezoeker nummer: <%=counter%>

en dit werkt nu niet :?:?:?

Verwijderd

Heb je in je selectquery ook [] om counter gezet?
Dus zoiets: sqlString = "SELECT [counter] FROM tblcounter"

Verwijderd

Topicstarter
Op vrijdag 05 april 2002 15:17 schreef Buikwortel het volgende:
Heb je in je selectquery ook [] om counter gezet?
Dus zoiets: sqlString = "SELECT [counter] FROM tblcounter"
heb ik nu net geprobeerd maar het werkt nog altijd niet :'(

Verwijderd

Je kan toch gewoon vanuit je select statement een variabele outputten?

Verwijderd

Topicstarter
edit:
het werkt nu intussen wel al


toch bedankt voor jullie hulp, ik weet intussen weeral een heleboel dingen bij!!

Thx guys
Pagina: 1