Textfält töms efter att de använts första gången. Så istället får du spara ned till en lokal variabel:
strText = Recordset1("Text")
Response.Write "Längd Text=" & Len(strText)
Response.Write strText
3 svar · 265 visningar · startad av wazid
Hej
Jag har tidigare bara jobbat mot Accessdatabaser, men nu börjat köra mot SQL 2000.
Har stött på en jättekonstig grej.
När jag hämtar information från en tabell så kommer jag bara åt informationen en gång....
Här följer ett exempel
-----------------------------------------------------------------------------------
Recordset1.Source = "SELECT * FROM Artikelrader Where Main_Id= "&id&" Order by Rownumber"
Recordset1.Open()
While (NOT Recordset1.EOF)
Response.Write "Längd Text=" &Len(Recordset1("Text"))
Response.Write Recordset1("Text")
Recordset1.MoveNext
Wend
Recordset1.Close()
-----------------------------------------------------------------------------------
När jag kör detta får jag utskrivet längden på "Text" men bara tomt där själva texten skulle skrivits ut.
Byter jag plats Response.write raderna så skrivs texten ut, men längden blir noll!
Text är av datatypen Text.
Varför kommer jag inte åt infon mer än en gång i sökningen.
Troligtvis nåt enkelt, men jag kommer inte på det.
Hälsningar
David
Textfält töms efter att de använts första gången. Så istället får du spara ned till en lokal variabel:
strText = Recordset1("Text")
Response.Write "Längd Text=" & Len(strText)
Response.Write strText
Det är ADO och det har inget med SQL server att göra.
Förmodligen så behöver du inte använda datatypen text, det går nog lika bra med varchar. Det kan varra som mest 8000 tecken i en varcharkolumn. Om du inte skall lagra mer än 8000 tecken i kolumnen så tycker jag att du skall byta.