webForumDet fria alternativet
Logga in / Bli medlem

Access till MySQL

Databaser & SQL

10 svar · 319 visningar · startad av MoonCow

Medlem sedan juni 2001223 inlägg
Trådstart#1

Hejsan! Har bytt till en mySQLdatabas och märker att det verkligen inte bara var att byta kopplingskod.
Detta är väl en av de klurigare sql-satserna som jag har vilken jag inte lyckats göra om så att mySQL gillar den.

När jag använde Access såg den ut såhär:

Addera = "select * from (select top " & besokareonline & " * from members order by senast_aktiv desc)  s where status = 'online' order by username"

Den jag försöker men får:

[TCX][MyODBC]You have an error in your SQL syntax near 'select * from members limit 1 order by senast_aktiv desc) where status = 'online' at line 1 

/onlinelist.asp, line 59

är:

'Addera = "select * from (select * from members limit " & besokareonline & " order by senast_aktiv desc)  s where status = 'online' order by username"

För jag känner ju till att man måste använda det som tydligen heter limit när det gäller mySQL.
Är det någon som vet hur min nya sql-sats ska se ut?

mvh,
Max

Medlem sedan nov. 20017 144 inlägg
#2

Felpostat inlägg!

Medlem sedan juni 2001223 inlägg
#3

Sorry, är så van att lägga i asp-forumet. Flyttar du åt mig?

Medlem sedan dec. 200012 464 inlägg
#4

Det går inte med en fråga i Mysql.

Alternativ hämta det inre resultatet och sortera i ASP

q = "select  * from members order by senast_aktiv desc limit " & besokareonline 
set rs = connect.execute(q)
if not rs.eof then a = rs.getrows() : sort(a)

Det finns ingen inbyggd sortering i VB men om du letar så finns det inlägg.

Använd en arbetstabell

q1 = "create temporary table magdur(... ) select * from members order by senast_aktiv desc limit " & besokareonline 

q2 = "select * from magdur order by username "
Medlem sedan juni 2001223 inlägg
#5

okej :)

förstod jag det rätt om jag skriver såhär?

query1 = "create temporary table magdur( ) select * from members order by senast_aktiv desc limit top" & besokareonline

query2 = "select * from magdur order by username "

Set RecSet = Databas.Execute(query1)
Set RecSet = Databas.Execute(query2)

funkar inte riktigt dock, ger:

[TCX][MyODBC]You have an error in your SQL syntax near ') select * from members order by senast_aktiv desc limit top 1' at line 1

ska det btw top vara med i satsen?

Medlem sedan dec. 200012 464 inlägg
#6

Top skall inte vara med, klippte och klistrade. Jag var lite slarvig med create syntaxen, det skall inte vara några parenteser

http://www.mysql.com/doc/en/CREATE_TABLE.html

q1 = "create temporary table magdur select * from members order by senast_aktiv desc limit " & besokareonline

Man kan ange olia attribut, t.ex. om man vill att något skall vara unikt eller så.

Medlem sedan aug. 2002237 inlägg
#7

Annars kan jag rekommendera ett prog som konverterar från Access till MySQL... kolla in: http://www.convert-in.com/
de har alla möjliga konverterare... =)

Lycka till... (Demon funkar tillfredställande...=)

ShoGun

Medlem sedan juni 2001223 inlägg
#8

ShoGun skrev:

Annars kan jag rekommendera ett prog som konverterar från Access till MySQL... kolla in: http://www.convert-in.com/
de har alla möjliga konverterare... =)

Lycka till... (Demon funkar tillfredställande...=)

ShoGun

Tack, men har redan ett program som heter DVtool som fixade biffen mkt smidigt och bra.
Denna frågan handlar mest om koden.

Medlem sedan juni 2001223 inlägg
#9

LarsG: tackar tackar! :) det funkar bra. men nästa gång, eller nån gång senare man kör koden så står det att den tabellen redan finns. vad lägger man till för att den ska skriva över varje gång istället? hittade inte det på länken du bifogade.

Medlem sedan dec. 200012 464 inlägg
#10

Tabellen försvinner när man gör disconnect, så det fungerar nog inte så bra i en miljö med connection-pooling.

Det är nog enklast att du droppar tabellen direkt efter det att du använt den

drop table magdur

Fördelen med en temporärtabell är att varje connection får sin egen kopia av tabellen så det blir aldrig några konfliikter som det lätt skulle bli med en permanent tabell.

Medlem sedan juni 2001223 inlägg
#11

Tackar ödmjukast, det fungerade förträffligt :)
Go Jul :)

260 ms totalt · 4 externa anrop · v20260731065814-full.81e7e81c
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)