С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/20: Рейтинг темы: голосов - 20, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 118

Есть ли в RecordSet команда определяющая число записей в нем?

10.10.2007, 09:54. Показов 4263. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста советом еще разок.Есть ли в RecordSet команда определяющая число записей в нем.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2007, 09:54
Ответы с готовыми решениями:

Функция определяющая что общее число книг есть шестизначное число
В массиве хранится информация о численности книг в каждом из 35 разделов библиотеки. Выяснить,верно ли, что общее число книг есть...

Вывести максимальное число из набора если в нем есть хоть одно четное число
если среди 3 чисел есть парное , то вывести максимальное если нет то мин.

Дано натуральное число n (n>999). Найти: а)число сотен в нем; б)число тысяч в нем
Дано натуральное число n (n>999). Найти: а)число сотен в нем; б)число тысяч в нем.

29
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
10.10.2007, 10:19
Да, у объекта Recordset есть свойство RecordCount. Но данное свойство вернет количество записей только в том случае, если Recordset открывается с типом курсора adOpenKeySet или adOpenStatic, в остальных случаях результатом будет -1.

С уважением, Алексей.
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 118
10.10.2007, 10:53  [ТС]
Алексей,извините пожалуйста. Не могли ли бы Вы по-конкретней описать данную ситуацию?
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
10.10.2007, 11:28
Попробую :-)

Пусть у нас уже имеются ADO объекты Recordset (переменная objRS) и соединение (переменная objCon).
При открытии Recordset указываем три параметра (всего их пять, два последних для нашей задачи не важны):
<%
objRS.Open 'SELECT * FROM MyTable', objCon, adOpenKeyset
%>
теперь мы имеем возможность воспользоваться свойством RecordCount:
<%
Response.Write objRS.RecordCount
%>
Но! Константа adOpenKeyset, также как и adOpenStatic, которая тоже нам подойдет, в ASP не определены, если мы не подключим необходимую библиотеку типов. Но мы этого делать не будем, так как проще объявить ранее эти константы в ASP (или вообще просто указать их значения в методе Open):
<%
adOpenKeySet=1
adOpenStatic=3
%>
Удачнее будет приинклюдить в нашу ASP файл adovbs.inc, который есть в примерах InetpubiissamplesISSamples. В этом файле описаны все необходимые для работы с ADO константы.

С уважением, Алексей.
0
Titan
10.10.2007, 13:18
Я не давно столкнулся с этой проблемой
на самом деле rst.RecordCount вернет количество записей если предварительно пролистать весь рекордсет, я сделал так

rst.Open sSQL, .....
rst.MoveLast
iCount=rst.RecordCount
rst.MoveFirst

а дальше что угодно можно делать....
DimOS
10.10.2007, 14:06
не совсем так. если курсор открыт как ForwardOnly (а это стандартное значение), то MoveFirst после MoveLast сделать уже нельзя будет.
Кроме того, я сомневаюсь, что можно сделать даже MoveLast.

Самый простой и самый правильный способ предложил x-mailer
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 118
11.10.2007, 11:12  [ТС]
Извините за назойливость, но проверте пожалуйста мой код, а то мой RecSet выдает мне -1.
CS='Database=Rf; Server=NORTH; Provider=SQLLEDB;UID=sa;PWD='
Set OBJdbConnection = Server.CreateObject('ADODB.Connection')
OBJdbConnection.Open(CS)
adOpenKeySet=1
Set RecSetHref = Server.CreateObject('ADODB.Recordset')
RecSetHref.Open SQLQuery, OBJdbConnection, adOpenKeyset=1
if RecSetHref.EOF <>TRUE AND RecSetHref.BOF <> TRUE then
p2=RecSetHref.RecordCount
end if
Мне кажется , что все так как Вы описали. Может где я ошибку не вижу?
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 118
11.10.2007, 11:12  [ТС]
Извините за назойливость, но проверте пожалуйста мой код, а то мой RecSet выдает мне -1.
CS='Database=Rf; Server=NORTH; Provider=SQLLEDB;UID=sa;PWD='
Set OBJdbConnection = Server.CreateObject('ADODB.Connection')
OBJdbConnection.Open(CS)
adOpenKeySet=1
Set RecSetHref = Server.CreateObject('ADODB.Recordset')
RecSetHref.Open SQLQuery, OBJdbConnection, adOpenKeyset=1
if RecSetHref.EOF <>TRUE AND RecSetHref.BOF <> TRUE then
p2=RecSetHref.RecordCount
end if
Мне кажется , что все так как Вы описали. Может где я ошибку не вижу?
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
11.10.2007, 11:21
попробуй строку
RecSetHref.Open SQLQuery, OBJdbConnection, adOpenKeyset=1
заменить на
RecSetHref.Open SQLQuery, OBJdbConnection, adOpenKeyset
0
quit
11.10.2007, 11:47
Set recSc=Server.CreateObject('ADODB.Records et')
recSc.Open 'SELECT COUNT(*) FROM chetchic',con,1,1
Number=CInt(recSc(0))
recSc.Close
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 118
11.10.2007, 12:03  [ТС]
RecSetHref.Open SQLQuery, OBJdbConnection, adOpenKeyset тоже не работает.
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
11.10.2007, 12:20
Проверь все еще разок. Проверь название провайдера (у тебя SQLLEDB, надо SQLOLEDB). Если у тебя в коде где-то выше стоит on error resume next, убери, может быть просто не замечаешь, где происходит на самом деле ошибка. Если не заработает, вышли всю asp страницу мне на мыло, я посмотрю

CS='Provider=SQLOLEDBata source=(local); Initial Catalog=test; UID=sa;PWD='

Set OBJdbConnection = Server.CreateObject('ADODB.Connection')
OBJdbConnection.Open(CS)

adOpenKeySet=1

Set RecSetHref = Server.CreateObject('ADODB.Recordset')
RecSetHref.Open 'SELECT * FROM Test', OBJdbConnection, adOpenKeyset
if not RecSetHref.Eof then
recCount=RecSetHref.RecordCount
end if
0
quit
11.10.2007, 12:43
Вся беда в том что вы может используете разные версии iis.
Т.к. у меня на сервере подобные вещи работают
а дома на локале нет.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
11.10.2007, 12:49
Ну, дело тогда не в IIS, а в библиотеках ADO. А они вряд ли могут отличаться спецификациями настолько, что одни и те же механизмы реализуются абсолютно по-разному.
0
quit
11.10.2007, 13:23
Насколько мне известно разные версии
iis в себе разные версии интерпритируемых язако
например VBScript или JScript.

Действительно динамически подключаемая библиотека
компонентов ADO мало изменилась для внешних пользователей . Однака разнае версии скриптовых языков по разному ее реолизовали.

Другими словами
version2 например может реализовывать экспортируемые методы предостовляемые ADO
в большей или меньшей степени.

То что в iis 5.0 на VBScript метод
recordset.RecordCount означает 'обращение
к методу ADO выдающему количество recordset'

в iis 4.0 (не обязательно я для примера поставил 4.0) - озночает 'зарезервированно для дальнейшей реализации получите 0'
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
11.10.2007, 13:33
О чем ты говоришь?! О реализации ADO в JScript и VBScript? Я не думаю, что разработчики этого скриптинга сделали бы такую глупость. Есть готовые ActiveX или COM объекты, в скрипте есть возможность использовать ActiveX, зачем же тогда реализовывать то, что уже реализовано?
WScript НЕ реализовывает механизмы ADO, он их использует посредством ActiveX.
(кстати, 'ADO' == 'ActiveX Data Objects')
0
quit
11.10.2007, 13:44
Еще раз -
VBScript - это просто скрипт
его как языка на самом деле не существует.
То же HTML XML SQL

При чтении ASP документа запускается анализатор.
Каторый вызывает те или иные методы ADO

Т.Е. Мы пришли к тому с чего возник спор.
разные версии iis по разному Анализируют
VBScript и у каждого из них свои пожелания по
поводу правил написания скриптов.

Насчет реализации VBScript методов ADO
это я оговорился.
Они реализуются внутренними средствами iis

Спасибо за дискусию :-))
quit
11.10.2007, 13:59
Кстати я написал что оговорился на самом деле нет.
Я написал что VBScript и JScript ИНТЕРПРИТИРУЕМЫЕ
языки, а потом наша дисскусия перешла на более высокий уровень Абстракции почему я позволил себе
давать условные термины.'реализация ADO например'
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
11.10.2007, 14:38
>VBScript - это просто скрипт
>его как языка на самом деле не существует.
>То же HTML XML SQL
С HTML и XML согласен в частности. Это не языки программирования, но языки разметки (HTML) или языки описания данных (XML). Кстати, XML тоже содержит очень богатый скриптовый язык (программирования).
С VBScript... Он не существует как язык? Что же тогда язык? Машинный код? Даже Assembler, и тот компилируется и линкуется :-). Чем же интерпретаторы, в отличие от компиляторов, могут позволить язык считать не языком? К примеру, есть интерпретаторы и копмиляторы языка BASIC. То есть, он одновременно и язык и не язык?

(1)
>При чтении ASP документа запускается анализатор.
>Каторый вызывает те или иные методы ADO
Что значит 'те или иные'? Какие ему, в зависимости от версии скрипта, вздумается? Или те, которые программер пишет?

(2)
>Т.Е. Мы пришли к тому с чего возник спор.
>разные версии iis по разному Анализируют
>VBScript и у каждого из них свои пожелания по
>поводу правил написания скриптов.
Во-первых, (2) не связано с (1), поэтому не логично писать Т.Е. Во-вторых, IIS не анализирует (не интерпретирует) VBScript, этим даже не занимается ISAPI фильтр (asp.dll). VBScript, равно как и JScript реализованы как OLE. В system32 найдешь vbscript.dll и jscript.dll. Они используются не только в ASP, но и, к примеру, в MSSQL DTS, в WScript, их можно и самому заюзать. В-третьих, опять же, скрипт и ADO связаны только механизмом ActiveX (ты знаком с ним?) И ему (скрипту) глубоко наплевать, что там и как работает, и никакие правила написания скриптов здесь не при чем.

>Насчет реализации VBScript методов ADO
>это я оговорился.
>Они реализуются внутренними средствами iis
Оговорился второй раз (причем дважды). IIS не реализует ADO, так как: 1) ASP обрабатывается фильтром, а не самим IIS, 2) ADO это ActiveX, попробуй удалить библиотеку MSADOxx.DLL, которая лежит в system32, и ADO перестанет работать вообще на этой машине, не только в ASP, а вообще нигде, может быть, это тебе позволит понять, что ни IIS, ни VBScript, ни даже asp.dll не реализуют его, а используют готовый ActiveX-компонент.

>Спасибо за дискусию :-))
Я тоже благодарен.

PS. Уровень абстракции и терминология не связаны друг с другом. Обратись к словарю по философии, чтобы более глубоко понять оба термина. Чтобы не выглядеть человеком, говорящим о том, чего не знаю, оговорюсь - по философии три года назад мною был сдан на 'пять' кандидатский минимум.
0
quit
11.10.2007, 15:37
>VBScript - это просто скрипт
>его как языка на самом деле не существует.
>То же HTML XML SQL
С HTML и XML согласен в частности. Это не языки программирования, но языки
разметки (HTML) или языки описания данных (XML). Кстати, XML тоже содержит
очень богатый скриптовый язык (программирования).
С VBScript... Он не существует как язык? Что же тогда язык? Машинный код?
Даже Assembler, и тот компилируется и линкуется :-). Чем же
интерпретаторы, в отличие от компиляторов, могут позволить язык считать не
языком? К примеру, есть интерпретаторы и копмиляторы языка BASIC. То есть,
он одновременно и язык и не язык?
////////////////////////////////////
Мне следовало везде к слову 'язык'
дописывать 'программирования'
Видимо надо добавить что подзащитные
больше относытся к набору инструкций.
Внешне напоминающих VB Cи и унаследовавших
логику построения алгоритмов.
Кстати компилятор BASIC заливает скрипт
своим интерпретатором - что обьясняет
большой размер скомпилированных файлов
////////////////////////////////////

(1)
>При чтении ASP документа запускается анализатор.
>Каторый вызывает те или иные методы ADO
Что значит 'те или иные'? Какие ему, в зависимости от версии скрипта,
вздумается? Или те, которые программер пишет?
////////////////////////////////////
Анализатор смотрит - инструкция 'Write'
запускает один метод
смотрит - инструкция 'END'
запускает другой метод
////////////////////////////////////
(2)
>Т.Е. Мы пришли к тому с чего возник спор.
>разные версии iis по разному Анализируют
>VBScript и у каждого из них свои пожелания по
>поводу правил написания скриптов.
Во-первых, (2) не связано с (1), поэтому не логично писать Т.Е. Во-вторых,
IIS не анализирует (не интерпретирует) VBScript, этим даже не занимается
ISAPI фильтр (asp.dll). VBScript, равно как и JScript реализованы как OLE.
В system32 найдешь vbscript.dll и jscript.dll. Они используются не только
в ASP, но и, к примеру, в MSSQL DTS, в WScript, их можно и самому заюзать.
В-третьих, опять же, скрипт и ADO связаны только механизмом ActiveX (ты
знаком с ним?) И ему (скрипту) глубоко наплевать, что там и как работает,
и никакие правила написания скриптов здесь не при чем.
//////////////////////////////////////////////
Правила написания скриптов :
The following table lists VBScript language features and the version when first introduced.
|| Language Element || 1.0 || 2.0 || 3.0
Asc Function +
Assignment Operator (=) +
//////////////////////////////////////////////
На счет (2) наследует (1)
(1) VBScript - набор инструкций
(2) использование инструкции из более
поздней версии VBScript в более ранней
Не всегда приводит к желаемому результату
//////////////////////////////////////////////
Скрипту наплевать А я что сказал ?
//////////////////////////////////////////////
>Насчет реализации VBScript методов ADO
>это я оговорился.
>Они реализуются внутренними средствами iis
Оговорился второй раз (причем дважды). IIS не реализует ADO, так как: 1)
ASP обрабатывается фильтром, а не самим IIS, 2) ADO это ActiveX, попробуй
удалить библиотеку MSADOxx.DLL, которая лежит в system32, и ADO перестанет
работать вообще на этой машине, не только в ASP, а вообще нигде, может
быть, это тебе позволит понять, что ни IIS, ни VBScript, ни даже asp.dll
не реализуют его, а используют готовый ActiveX-компонент.
////////////////////////////////////////////////
При анализе документа фильтры является встроенным средствоми iis поскольку сами фильтры без наследника или той программы каторая их будет
использовать могут
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2007, 15:37
Помогаю со студенческими работами здесь

Есть ли какая-нибудь команда, которая находит минимальное число в массиве?
А то очень сложно сравнивать 100 элементов в ручную Или команда, которая хотя бы просто сравнивает элементы.

Дано натуральное число. Есть ли в нем цифра 3?
Дано натуральное число. Есть ли в нем цифра 3?

Дано натуральное число. Определить, есть ли в нем цифра 7
Дано натуральное число. Определить, есть ли в нем цифра 7. Нельзя использовать строки и массивы,а также методы.Помогите с задачей

Дано натуральное число. Определить, есть ли в нем цифра a
Дано натуральное число. а) Определить, есть ли в нем цифра a. б) Верно ли, что в нем нет цифры b? в) Верно ли, что цифра a...

Дано натуральное число. Определить есть ли в нем цифра 3
Дано натуральное число. Определить есть ли в нем цифра 3


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru