Die SQL Server-Textspalte wirkt sich auf die Ergebnisse aus, die an das klassische ASP zurückgegeben werden
Mit klassischem ASP versuche ich, eine SQL Server-Datenbank wie folgt abzufragen:
strSQL = "select column_1, column_2, column_3, column_4 from someview " &_
"where RecordNo=" & i
set rs=conn.Execute(strSQL)
if not rs.eof then
A = rs("column_1")
B = rs("column_2")
C = rs("column_3")
D = rs("column_4")
end if
Column_3 ist ein NText-Typ, die anderen Spalten sind varchar oder int (manchmal werden mehr als 4 Spalten zurückgegeben), aber die Abfrage gibt aufgrund der where-Klausel nur 1 Datensatz zurück.
Auf der ASP-Seite variieren die Ergebnisse - manchmal werden A, B, D aufgefüllt, manchmal nicht - aber alle Spalten in der Ansicht enthalten Daten (wenn ich den SQL Server abfrage, werden die erwarteten Ergebnisse angezeigt - alle Spalten enthalten Daten). Wenn ich column_3, also NText, aus strSQL entferne, funktioniert alles einwandfrei.
Ich habe dieses Verhalten auf einigen anderen Seiten in der Vergangenheit gesehen. Wenn ich den ASP so ändere, dass column_3 separat abgerufen wird:
strSQL = "select column_3 from someview where RecordNo=" & i
Die NText-Daten werden korrekt zurückgegeben.
Gibt es eine maximale Datensatzlänge für ein SQL Server-Recordset, das an klassisches ASP zurückgegeben wird? Was kann ich außer der Aufteilung des NTEXT in eine separate Abfrage noch tun?
EDIT: Es ist mir gerade eingefallen, die Verbindungszeichenfolge zu ändern - inspiriert von dieserKommentar zu einem ähnlichen Problem - Die Verbindung erfolgt über den SQL Server-ODBC-Treiber (Driver = {SQL Server};).