niNeMedlem sedan maj 2005138 inlägg 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 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 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 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 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 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 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