webForumDet fria alternativet

Connectionstring ASP mot MySQL - Lost connection

6 svar · 758 visningar · startad av niNe

niNeMedlem sedan maj 2005138 inlägg
#1

Hejsan

Har lite problem. Håller på att migrera från en Accessdatabas till en MySQL och försöker få till en fungerande connectionstring. Har kört enligt följande:

Set connection = Server.CreateObject("ADODB.Connection")
	connection.connectionstring="DRIVER={MySQL};SERVER=localhost;DATABASE=dbase_name;UID=dbase_name;PWD=pAsSwOrD"
connection.Open
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT TOP 3 * FROM news ORDER BY datum DESC"
rs.Open strSQL, connection ,3,3

Sen if rs.eof osv osv. Får felmeddelandet:

ADODB.Connection.1 (0x80004005)
SQLState: S1T00 Native Error Code: 2013 [MySQL][ODBC 3.51 Driver]Lost connection to MySQL server during query.

Felmeddelandet pekar på en rad som i aspfilen som bara innehåller CSSkod.
Har försökt med flertalet olika connectionstrings från olika siter, men allt resulterar i samma felmeddelande. Någon som har några andra idéer?

ZaimanMedlem sedan dec. 20014 239 inlägg
#2
Set oConn = Server.CreateObject("ADODB.Connection")
strConn = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mindatabs;User=användare;Password=lösenordet;Option=3;"
oConn.Open(strConn)

strSQL = "SELECT * FROM news ORDER BY datum DESC LIMIT 3"
Set rs = oConn.Execute(strSQL)

Prova såhär istället..
"TOP" Finns inte med i MySQL där används "LIMIT"

niNeMedlem sedan maj 2005138 inlägg
#3

Tack för ditt svar. Det fungerade lite bättre nu... :)

Följdfråga... Har följande kod för att klippa nyheter på förstasidan:

Z=0
Do While Z<30
If rs.EOF Then
Response.Write("Det finns inga nyheter i databasen")
Exit Do
End if
Response.Write("headline")

osv osv... Tror ni förstår principen... Dock skriver den ut "Det finns inga nyheter" följt av de tre senaste nyheterna i databasen... Varför?

ZaimanMedlem sedan dec. 20014 239 inlägg
#4

Villkoret för Z inträffar. För det är sant att Z är mindre än 30.

Svårt att se varför utskriften fortsätter utan mer kod. Hur ser koden ut för utskrift av nyheterna?

niNeMedlem sedan maj 2005138 inlägg
#5
Z=0				
Do While Z < 30									
If rs.EOF Then	
Response.Write("Det finns inga nyheter registrerade i databasen.")
Exit Do											
Else												
Response.Write "<tr> <td> <b>" & rs("headline") &"</b></td></tr><tr><td>"
Dim dTid
dTid = FormatDateTime(rs("date"), vbShortDate) & " " & FormatDateTime(rs("date"), vbShortTime)
Response.Write(dTid &" | "&rs("writtenby")&"<br></b></td><tr><td>")
str = rs("news")		
If Len(str) > 30 Then 	
Response.Write left(str,30) & left(right(str,len(str)-30),instr(right(str,len(str)-30),"")) &"..."	
Else												
Response.Write str
End if											
Response.Write "</td></tr><tr height=20><td align=right><a href=fjsk_news.asp?id=" & rs("ID") & ">Läs mer »</a></td></tr>"
Response.Write "<tr><td><hr size='1'></td></tr>" 
rs.MoveNext										
Z = Z + 1	
End if	
Loop
ZaimanMedlem sedan dec. 20014 239 inlägg
#6

Tror du ska kolla:

if rs.BOF AND rs.EOF
   Response.Write("sdfksjdl")
   Exit While
end if

Men jag kan ha fel har inte kollat upp det ordentligt.

jonneMedlem sedan jan. 20011 154 inlägg
#7

Sen kan du ju lägga if-satsen utanför loopen. Ingen mening med att loopa igenom 30 gånger om det inte finns något att loopa

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