[ASP/MySQL] Query gedraagt zich raar

Pagina: 1
Acties:
  • 130 views sinds 30-01-2008
  • Reageer

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
Ik ben mijn applicatie aan het migreren van Access naar Mysql en ik ben al redelijk wat probleempjes tegen gekomen, maar niks echt raars.

Nu kom ik echter iets tegen waar ik helemaal niks van snap. Hier het voorbeeld:

code:
1
2
3
4
5
6
7
8
9
SQL = "SELECT * FROM tblUsers u1
rscommon.open SQL, adoCon, 1, 1

Do While Not rscommon.EOF

     userid = rscommon.fields("u1.userid")

     rscommon.movenext
LOOP

Echter dit pikt hij niet.
Hij zegt dat 'u1.userid' dat niet goed is. Ik kan dus blijkbaar geen tabelnamen of aliasses gebruiken
als ik velden uit een recordset haal?
Als ik geen alias gebruik maar gewoon userid neem werkt het WEL. toch ernstig raar.
Dat moet toch kunnen?
Waar kan dit aan liggen?

PS. de query voert hij dus uit, bij het rscommon.fields doet hij het niet

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 30-01 09:44

Jaspertje

Max & Milo.. lief

en als je ipv select * eens select ul.userid neemt? (en de rest dus ook uitschrijft)

[ Voor 27% gewijzigd door Jaspertje op 18-05-2006 14:00 ]


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
zelfde verhaal ik zal even heel de query laten zien.

code:
1
2
3
4
5
6
7
8
9
          SQL = "SELECT t1.Topic_ID, f1.Posts_Per_Page, t1.Topic_Subject, t1.Topic_Auther, u1.UserName as un1, u1.User_ID, u2.UserName, u2.User_ID, t1.Forum_ID, f1.Forum_Afkorting ,t1.Views, t1.lastpost_date, t1.Last_Entry, t1.Priority, t1.Locked, f1.hide, t1.postcount, t1.haspoll, t1.topic_reports "
    SQL = SQL & "FROM tblTopics t1, tblForum f1, tblUsers u1, tblUsers u2 "
    SQL = SQL & "WHERE (u1.User_ID = t1.Topic_Auther) "
    SQL = SQL & "AND (u2.User_ID = t1.lastposter_id) "
    SQL = SQL & "AND (f1.Forum_ID = t1.Forum_ID) "
    SQL = SQL & "AND (t1.lastpost_date BETWEEN "
    SQL = SQL &     "DateAdd('d', -1, NOW ) AND NOW) "
    SQL = SQL & "AND f1.Forum_ID NOT IN "
    SQL = SQL &     "(SELECT not_shown_forum FROM tblShowForums WHERE Page_Type = 'A' AND User_ID =" & lngloggedinUserid  & ") "

ik heb dus 2 user_id's en de query doet het ook gewoon.
Met Access werkte het wel, dus het is iets in mysql concludeer ik.

edit/
sorry dit heeft een aantal functies die alleen in access bestaan maar die worden automatisch omgezet. het gaat dus om de aliases die niet werken met ASP <> Mysql en wel met ASP <> Acces...

[ Voor 18% gewijzigd door Mischa_NL op 18-05-2006 14:15 ]


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
kick, nog steeds geen oplossing gevonden...
niemand?

Dit werkt dus niet:
code:
1
2
3
4
5
6
7
8
9
SQL = "SELECT * FROM tblUsers u1
rscommon.open SQL, adoCon, 1, 1

Do While Not rscommon.EOF

     userid = rscommon.fields("u1.userid")

     rscommon.movenext
LOOP



dit werkt evengoed niet:

code:
1
2
3
4
5
6
7
8
9
SQL = "SELECT userid AS uid FROM tblUsers u1
rscommon.open SQL, adoCon, 1, 1

Do While Not rscommon.EOF

     userid = rscommon.fields("u1.uid")

     rscommon.movenext
LOOP

[ Voor 81% gewijzigd door Mischa_NL op 01-06-2006 01:50 ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Aliassen werken afaik idd niet met mysql. Maar als het zonder wel werkt, wat is dan het probleem?
En je vergeet je AS statement in je query voor de alias.

[ Voor 29% gewijzigd door DeverauX op 01-06-2006 08:04 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

userid = rscommon.fields("uid") zou toch gewoon moeten werken ?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Nope... userid = rscommon ("uid") wel...

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
ja hier werkt het zeker wel.

maar als ik ingewikkeldere query's heb (met veldnamen die hetzelfde zijn) heb ik een probleem!

Ik heb al zitten denken aan de getrows() methode maar ik vraag me af, is dit echt sneller/geen performanceverlies?
Want dat werkt namelijk perfect om de een of andere reden.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

dan doe je toch (in pseudo)
select
t1.userid as uid1,
t2.userid as uid2
[..]

die moet je dan kunnen aanspreken met rscommon("uid1") en rscommon("uid2")

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Mischa_NL schreef op donderdag 01 juni 2006 @ 22:21:
ja hier werkt het zeker wel.

maar als ik ingewikkeldere query's heb (met veldnamen die hetzelfde zijn) heb ik een probleem!

Ik heb al zitten denken aan de getrows() methode maar ik vraag me af, is dit echt sneller/geen performanceverlies?
Want dat werkt namelijk perfect om de een of andere reden.
ja, verhoogt de performance best, zeker met grotere recordsets.
4guysfromrolla heeft dat ook getest.

edit: de reden dat dat perfect werkt is dat je dan werkt met indices om een veld in je recordset aan te spreken, dus ipv rscommon( "uid" ) bijv. arcommon( UID, x ), waarbij ik het zoals je ziet heel handig vind voor de leesbaarheid van de code om die indices in een constante te zetten. Dan kun je dus . UID gebruiken ipv bijv. 5, wat veel prettiger leest/debugt.

[ Voor 25% gewijzigd door wizzkizz op 02-06-2006 09:53 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • edeboeck
  • Registratie: Maart 2005
  • Laatst online: 16-02 12:21

edeboeck

mie noow noooothing ...

Als de code van je "grote" SQL-statement exact was, lijkt het me logisch:

ul.User_ID ipv ul.userid (let op case sensitivity en de underscore).

Lost dit wat op?

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
SQL is niet case sensitive

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
TheRookie schreef op vrijdag 02 juni 2006 @ 06:24:
dan doe je toch (in pseudo)
select
t1.userid as uid1,
t2.userid as uid2
[..]

die moet je dan kunnen aanspreken met rscommon("uid1") en rscommon("uid2")
dat werkt dus ook niet.

het lijkt erop dat heel het aliases gebeuren niet werkt...
wel via dbmanager dus ik denk dat het aan odbc ligt? zou dit kunnen?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:43

mulder

ik spuug op het trottoir

rscommon("uid") is kort voor rscommon.Fields("uid").Value (dit is netter en zal in theorie ook beter performen) en zou moeten werken in jou geval, maar idd misschien ondersteund MySQL of ODBC dit niet.

Je kunt over de collectie Fields gaan lopen en dan de Name naar het scherm Response.Write-en misschien dat dat duidelijkheid schept.

[ Voor 5% gewijzigd door mulder op 02-06-2006 21:50 ]

oogjes open, snaveltjes dicht


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
nogmaals een kick. iemand die echt uitsluitsel kan geven over de kwestie: ASP, MySQL en Aliases?

[ Voor 4% gewijzigd door Mischa_NL op 14-06-2006 17:43 ]


  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 14-02 22:37
Is het misschien mogelijk om ipv de naam van het veld de index van het veld op te geven. Dus als uit jou query de resultaten zo geordend staan: (u1.uid, u2.uid, u1.blaat, u2.aap); dat je dan ipv rscommon.fields("u1.uid") rscommon.fields(0) doet.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:43

mulder

ik spuug op het trottoir

Mischa_NL schreef op woensdag 14 juni 2006 @ 17:33:
nogmaals een kick. iemand die echt uitsluitsel kan geven over de kwestie: ASP, MySQL en Aliases?
Probeer dan eens de name naar boven te halen:
http://www.devguru.com/technologies/ado/8603.asp

oogjes open, snaveltjes dicht


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
Omg!!! Dit is denk ik de oplossing, ik denk dat het werkt!
Als dit zo is, HULDE!

Ik test het nog even uit, als ik het zeker weet laat ik het weten.

Nu al gigantisch bedankt :D.

edit/

Verder getest en het werkt perFECT. Heel erg bedankt, ik dacht dat er echt geen oplossing voor was!

[ Voor 24% gewijzigd door Mischa_NL op 14-06-2006 18:07 ]


  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 14-02 22:37
Welke oplossing heeft nu gewerkt? Die van Don Facundo, de mijne of beide? :)

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
die van jou The Fox
van Don Facundo zal ik ook nog eens bekijken!

als ik de namen bovenhaal krijg ik dit:

Topic_ID Posts_Per_Page Topic_Subject Topic_Auther UserName User_ID UserName User_ID Forum_ID Forum_Afkorting Views lastpost_date Last_Entry Priority Locked hide postcount haspoll topic_reports

terwijl dit gewenst is:

Topic_ID Posts_Per_Page Topic_Subject Topic_Auther u1.UserName u1.User_ID u2.UserName u2.User_ID Forum_ID Forum_Afkorting Views lastpost_date Last_Entry Priority Locked hide postcount haspoll topic_reports

[ Voor 80% gewijzigd door Mischa_NL op 14-06-2006 19:19 ]

Pagina: 1