Hej.
Förslag: byt datatyp till char istället. Text är ju avsett för att hantera väldigt stora block av data.
(Jag har sett något om att det skulle gå bättre om text-kolumnen ligger sist i select-listan. Vet inte varför.)
(pearl -> perl)
4 svar · 209 visningar · startad av Vide
Hejsan!
För att fira mitt 3000:e inlägg så tänkte jag komma med en fråga som jag sitter och grunnar på.
Det är så att jag precis fört över en sajt ifrån Access till MS SQL server...
Jag har ändrat SQL-strängarna så att de är anpassade till SQL server. Och jag har ändrat kopplingen till databasen också... bra, så långt så fint.
Nu till problemet:
I ett forum jag har på sajten så plockar jag ut inlägget med hjälp utav en funktion. All info fungerar bra att hämta förutom fältet "message" där jag har meddelandetexten för inlägget. När jag försöker att hämta det fältet så får jag felmeddelandet:
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Kommenterar jag bort raden där jag hämtar värdet ur det fältet visas sida som den skall (förutom att det inte finns något meddelande)...
Fältets egenskaper:
Datatype: Text
Lenght: 16
Allow nulls: true
Funktionens utseende:
Function ShowMessagesStyle1(intParent, intCounter)
intLevel = intLevel + 1
strSQL = "SELECT * FROM tblMessages WHERE ForumID = " &Request.QueryString("forumid")
strSQL = strSQL & " AND ModerateYes = 1"
If intCounter = 0 then
strSQL = strSQL & " AND MessageID = " & Request.QueryString("messageid")
Else
strSQL = strSQL & " AND ParentMessageID = " & intParent
End If
strSQL = strSQL & " ORDER BY DateOfPost ASC"
Set rstForumMessages2 = ConnObj.Execute(strSQL)
Do Until rstForumMessages2.EOF OR intCountParents = 1
If intParent = 0 Then
intCountParents = intCountParents + 1
End If
strSQL = "SELECT * FROM tblUsers WHERE UserName = '" & rstForumMessages2("UserName") & "'"
Set rstForumUser = ConnObj.Execute(strSQL)
If NOT rstForumUser.EOF THEN
strHomesite = rstForumUser("Homesite")
strEmailAddress = rstForumUser("EmailAddress")
intICQ = rstForumUser("ICQ")
strEmail = rstForumUser("visaepost")
End If
Set rstForumUser = nothing
intCounter = intCounter + 1
if intCounter MOD 2 = 0 Then
intClasstype = 0
Else
intClasstype = 1
End If
usrName = rstForumMessages2("UserName")
strProfile = "<a href=""javascript:void(0);"" onClick=""javascript:openWindow('forum/user_profile.asp?username="&usrName&"', 375, 300);""><img alt='"&rstForumMessages2("UserName")&"s profil' src=images/icons/profile.gif border=0></a>"
strHomePage = "<a href="&strHomesite&" target=_blank><img alt='"&rstForumMessages2("UserName")&" har en hemsida' src=images/icons/home.gif border=0></a>"
If strEmail = true then
strEmail = "<a href=mailto:"&strEmailAddress&" target=_blank><img alt='Maila "&rstForumMessages2("UserName")&"' src=images/icons/sendmail.gif border=0></a>"
Else
strEmail = ""
End If
Response.write _
"<tr>"&_
"<td class=forummessagesubject"&intClasstype&">"&_
"<img src='images/icons/icon"&rstForumMessages2("Smiley")&".gif'> "&_
"<a name=#"&rstForumMessages2("MessageID")&">"&rstForumMessages2("Subject")&"</a>"&_
"</td><td align=right class=forummessagesubject"&intClasstype&">"&_
strEmail&strHomePage&strProfile&"</td></tr>"&_
"<tr><td colspan=2 class=forummessageauthor"&intClasstype&">"&_
"Inskickat "&rstForumMessages2("DateOfPost")&" av "&rstForumMessages2("Username")&_
"</td></tr><tr><td colspan=2 height=2></td></tr><tr><td colspan=2 class=forummessagecontent"&intClasstype&"><br>"
[b]strMessage = TotalFunk(rstForumMessages2("message"))[/b]
If rstForumMessages2("ModerateBy") <> "" AND rstForumMessages2("LastMod") <> "" then
strRedigerad = "[Redigerat av "&rstForumMessages2("ModerateBy")&" den "&rstForumMessages2("LastMod")&"]"
End If
Response.Write strMessage &_
"<br><br></td></tr><tr><td class=forummessagechanged"&intClasstype&">"&strRedigerad&" </td><td align=right class=forummessageinfo"&intClasstype&">"
ParentMessageId = rstForumMessages2("Parentmessageid")
Response.write "<a href=#top>till toppen</a> <a href=index1.asp?que=forum/redigerapost.asp&messageid="&rstForumMessages2("MessageID")&_
"&forumid="&Request.QueryString("forumid")&"&parentid="&ParentMessageId&_
"&ParentsParent="&Request.QueryString("messageid")&">redigera</a> "&_
"<a href=index1.asp?que=forum/post.asp&forumid="&Request.QueryString("forumid")&_
"&messageid="&rstForumMessages2("MessageID")&"&parentid="&rstForumMessages2("MessageID")&">besvara</a></td></tr><tr><td colspan=2><hr></td></tr><tr><td colspan=2 height=2></td></tr>"
Response.write ShowMessagesStyle1(rstForumMessages2("MessageID"), intCounter)
rstForumMessages2.MoveNext
intLevel = intLevel - 1
Loop
End Function
Någon som har en förklaring till detta fenomen? Skulle vara evigt tacksam om någon kunne hitta felet eller komma med tips som kan bidra till att jag hittar orsaken...
Mvh, Vide
RED: har pearlkoden tagits bort?
Hej.
Förslag: byt datatyp till char istället. Text är ju avsett för att hantera väldigt stora block av data.
(Jag har sett något om att det skulle gå bättre om text-kolumnen ligger sist i select-listan. Vet inte varför.)
(pearl -> perl)
LarsG, du är dagens hjälte... när får jag bjuda på en öl?
Följdfråga: Vad skall man ha datatypen Text till om man inte kan hämta den via SQL till ASP? är typ för bilder och sånt?
tack iaf..
Mvh, Vide
Jag sökte lite om text och hittade följande, så om du är intresserad?
http://msdn.microsoft.com/library/psdk/sql/8_qd_13.htm
Trevlig sida!
Märkte en sak med Char dock, om man skriver "hejsan" och har 50 tecken i Length så fyller den ut dom resterande 46 tecknena med mellanslag... skumt.
Bytte jag dock till varchar så löste sig det problmet...
Mvh, Vide