Общие > Веб-технологии

непонятный глюк ADO Recordset ?!?!?

(1/2) > >>

Dmitry25600:
Значит так:
sql = "select * from table1 where k = 1"
set rs = server.CreateObject("ADODB.Recordset")
set rs = connection.execute(sql)

Значения получены нормально и большинство можно вывести:
response.write(rs_prod.Fields("targetph"))
...
но на некоторой записи:
response.write(rs_prod.Fields("some_name"))
НИЧЕГО НЕ ВОЗВРАЩАЕТ!!!
И так все записи после этой. При этом никаких ошибок сервер не возвращает.

Что это такое и как с этим бороться?

.:cRaw:.:
слишком мало информации чтобы чтото сказать... нужно пробовать.

Dmitry25600:
Вот и мне ее что-то маловато :)
проблема так и осталась...
Похоже, что при большом кол-ве полей в записи происходит какой-то сбой в ADO.
Нулевые значения отпадают. Неправильные имена полей тоже.

Обойти проблему можно переписав результат запроса в массив перед обработкой значений.

Но чертовски интересно было бы знать суть проблемы.

Xander:
У меня была такая же фигня. Пришлось отказаться от полного вывода записей в пользу постраничного. Кстати, тебе браузер при этом говорит, что сервер закрыл соединение?

vlad:
1) Уберём хеширование в ADO:
    \'   по запиям идём только вперёд - и нет хешировния
     rs_prod.CursorType = adOpenForwardOnly  

 2)  конфигурируем курсор :
    \'  назначение клиентного курсора ( быстрый сброс данных с удалённой базы данных ) - предпочтительно для Access
     rs_prod.CursorLocation = adUseClient
 
- работаем базой в темпе вальса ( предпочтительно для Oracle )
    rs_prod.CursorLocation = adUseServer

3) корректный вывод:

    response.write server.HTMLEncode("" & rs_prod.Fields("some_name"))

Не надо указывать скобки при вызове функции VBScript без возвратного значения.

4) Если у тебя скрипрт будет долго работать указывай Server.ScriptTimeout = 60
( время - в секундах ) и не забудь убрать буферизацию Response.Buffer = 0

 


Ну и на закуску - укажи в начале скрипта какой ADO используешь :




Успехов тебе.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии