webForumDet fria alternativet

Fungerade med Access men inte med MySQL!?

5 svar · 434 visningar · startad av medialabs

medialabsMedlem sedan mars 20023 686 inlägg
#1

hej!

Har precis importerat in en tabell från en access-databas till en databas i NySQL, (genom SQL-FRONT), Jag har förstått att alla syntaxer och kommandon som fungerar i kombinationen ASP/access databas rimligtvis inte fungerar i kombination med ASP/MySQL

Som jag nu har upptäckt så fungerar inte "SELECT top 2 * from tblnyhet" nu när jag har bytt databas till Mysql, men om jag tar bort TOP 2 så fungerar det, men jag vill ju bara visa dem två senaste nyheterna!

Bifogar med koden som jag använder för att lista de 2 första nyheterna.

<%
				Dim ConnectNews, SQLNews, RSNews

			Set ConnectNews = Server.CreateObject("ADODB.Connection")
			ConnectNews.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE=; USER=; PASSWORD=; OPTION=3;"

			SQLNews = "SELECT top 2 * FROM tblnyhet order by strid DESC"
			set RSNews = ConnectNews.Execute (SQLNews)

			do while not RSNews.eof
     				Response.write "<img src=""/images/pil_nyheter.gif"" width=""9"" height=""10"" border=""0"" alt=""""> <b><a href=""/public/nyhet.asp?id=" & RSNews("strid") & """ title=""" & RSNews("strrubrik") & """ class=""News"">" & RSNews("strrubrik") & "</a></b><br>" & RSNews("strdatum") & "<br><br>"
     			RSNews.MoveNext
			Loop

			RSNews.Close
			ConnectNews.Close
		%>

Hur får jag den här att fungera med MySQL så att den visar de två senaste inlagda nyheterna?

Och vilka skillnader finns det mellan Access och MySQL så att jag inte i fortsättningen slipper kissa i byxorna varje gång ett kommando som fungerat med Access inte fungerar med MySQL.

m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Du får använda LIMIT i stället för TOP när det gäller mySQL.

http://www.coreycollins.com/blog/archives/000075.php

medialabsMedlem sedan mars 20023 686 inlägg
#3

Om jag byter ut TOP mot LIMIT fungerar det inte och får bara

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.22]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 2 FROM tblnyhet order by strid DESC' at line 1

/include/inc_nyheter.inc, line 20

Testade även med

SQLNews = "SELECT * FROM tblnyhet LIMIT 0,2 order by strid DESC"
Peter SMedlem sedan dec. 20025 483 inlägg
#4
SELECT * FROM tblnyhet order by strid DESC limit 2
medialabsMedlem sedan mars 20023 686 inlägg
#5

Fick det att fungera med följande:

SQLNews = "SELECT * FROM tblnyhet order by strid DESC LIMIT 2"
LarsGMedlem sedan dec. 200012 464 inlägg
#6

Flyttas från ASP

129 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)