使用 ADO 讀取 TEXT/NTEXT 大型欄位時,Connection.Execute 回傳的 Recordset 無法取得內容,改用 Recordset.Open 即可正常讀取。原因在於 Execute 針對大型物件(BLOB)僅回傳指標/索引,而 Open 會完整提取資料流。建議:列表查詢(僅需標題/索引)用 Execute 提升效能;需顯示完整內容時用 Open。
比較兩種方式取得 Recordset 的位元組大小,Open 方式會顯著較大(包含實際資料內容)。
' 無法讀取 TEXT/NTEXT 內容
Set rs = conn.Execute("SELECT content FROM articles WHERE id=1")
Response.Write rs("content") ' 空白或亂碼
' 正確讀取
rs.Open "SELECT content FROM articles WHERE id=1", conn, 1, 1
Response.Write rs("content") ' 正常顯示