|
v7: Количество записей в запросе | ☑ | ||
|---|---|---|---|---|
|
0
kupec
19.08.21
✎
09:00
|
Добрый день, есть вот такой запрос
Cmd=СоздатьОбъект("ADODB.Command"); Cmd.ActiveConnection=Соединение; Cmd.CommandTimeOut=10; Cmd.CommandType=1; Cmd.Commandtext=СокрЛП("SELECT CODE FROM SC2463 WHERE (ISMARK=0 and SP2464 = ' 22I ')"); Rs.ActiveConnection=Соединение; Rs=Cmd.Execute(); Пока Rs.EOF()=0 Цикл Сообщить(Rs.Fields(0).Value); Rs.MoveNext(); КонецЦикла; Он работает, все с этим хорошо. Можно ли каким то образом перед обходом цикла узнать, сколько записей (или как там их называют) содержит результат выполнения запроса. Почему то Count не срабатывает |
|||
|
1
trad
19.08.21
✎
09:18
|
документация по рекордсет
https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/recordset-object-properties-methods-and-events?view=sql-server-ver15 RecordCount Property |
|||
|
2
Ёпрст
гуру
19.08.21
✎
09:19
|
Нам отсюда не видно, как ты используешь count в тексте запроса, и зачем используешь ado, заместо 1cpp, например
|
|||
|
3
kupec
19.08.21
✎
09:22
|
(2) т.е. в тексте запроса нужно задать, что мне необходимо получить количество записей? Типа как в 7.7 Счётчик?
|
|||
|
4
kupec
19.08.21
✎
09:22
|
(1) пробовал вот так
Rs.RecordCount() Выдает -1 |
|||
|
5
trad
19.08.21
✎
09:27
|
(4) значит рекордсет не знает сколько записей будет выбрано.
В таком случае узнать можно только прокрутив весь рекордсет. 1) ты сам можешь это сделать прокрутив цикл два раза 2) использовать GetRows, но это вернет массив, а семерка их не умеет |
|||
|
6
trad
19.08.21
✎
09:28
|
правильный ответ в (2) - 1cpp
|
|||
|
7
ДенисЧ
19.08.21
✎
09:48
|
Так в строке соединения (?) нужно указать правильный тип курсора...
|
|||
|
8
Sserj
19.08.21
✎
09:56
|
Ну как вариант:
SELECT CODE , row_number() over (order by code) as [НомерТекущейСтроки] , row nuber() over (opder by code desc) as [СтрокДоКонцаВыборки] ROM SC2463 WHERE (ISMARK=0 and SP2464 = ' 22I ') order by CODE |
|||
|
9
kupec
23.08.21
✎
08:42
|
(7) строка соединения
"Provider=SQLOLEDB; Server=192.168.0.100;User ID=sa;Password=пароль;Database=база;" |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |