powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу найти метод запроса "TOP" для рекордсета.
9 сообщений из 9, страница 1 из 1
Не могу найти метод запроса "TOP" для рекордсета.
    #33125274
Azart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот етсь метод Filter
Код: plaintext
rs.filter "table LIKE '1' "
, даже етсь метод Sort
Код: plaintext
rs.Sort = "table ASC"
, но не как ни могу найти метод, что бы выполнилось "TOP 10 table"
Естественно:
Код: plaintext
1.
rs.filter "TOP 10 table"
rs.Sort = "TOP 10 table" 
не пашет.
Подскажите...

ПС: расскажите(можно линки ан инфу, или раздел МСДН) как создавать временные таблицы(БД: SQL Server 2000) и обращаться к ним.
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33125312
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AzartВот етсь метод Filter
Код: plaintext
rs.filter "table LIKE '1' "
, даже етсь метод Sort
Код: plaintext
rs.Sort = "table ASC"
, но не как ни могу найти метод, что бы выполнилось "TOP 10 table"
Естественно:
Код: plaintext
1.
rs.filter "TOP 10 table"
rs.Sort = "TOP 10 table" 
не пашет.
Подскажите...

ПС: расскажите(можно линки ан инфу, или раздел МСДН) как создавать временные таблицы(БД: SQL Server 2000) и обращаться к ним.
только через rs.Source = "SELECT TOP 10 * FROM ..."
Насчет временных таблиц - идтите в форум по SQL Server на этом сайте.
Навскидку: временные таблицы создаются как правило в к-л коннекте, т.е. в ХП. Синтаксис - такой же, как при создании обычной таблицы, но имя таблицы начинается с #:
CREATE TABLE #TempTable...
Сходите сюда - инфы море
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33125335
Azart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортолько через rs.Source = "SELECT TOP 10 * FROM ..."
Появляется логичный вопрос, а что писать после оператора FROM, мой рекордсет я сам создал, т.е. это не результат SQL запроса в БД.
Если указываю так
Код: plaintext
rs.Source = "SELECT TOP 10 * FROM rs"
, то нечего не работает :(
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33125373
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А смысл данных действий?

Если показывать только первые 10 или (N) записей, то можно использовать св-во Bookmark и фильтровать на нем
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33125389
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Azart автортолько через rs.Source = "SELECT TOP 10 * FROM ..."
Появляется логичный вопрос, а что писать после оператора FROM, мой рекордсет я сам создал, т.е. это не результат SQL запроса в БД.
Если указываю так
Код: plaintext
rs.Source = "SELECT TOP 10 * FROM rs"
, то нечего не работает :(
В предложении FROM пишется список таблиц - это команда к серверу-базе данных. А сервер-база данных не знает о том, что в Вашем приложении есть такой запрос, как rs. По этому указывайте список таблиц.
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33127009
Azart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА смысл данных действий?
Мне нужно, чтоб в рекордсете осталось определённое количество записей.
авторсв-во Bookmark и фильтровать на нем Как фильтровать использую свойство Bookmark?
автор По этому указывайте список таблиц. Не помогает. Для примера эксперементировал с 1 таблицей - не работает! Есть ещё варианты?
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33127659
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Azart

Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
BOF, EOF, and Bookmark Properties Example (VB)
This example uses the Bookmark and Filter properties to create a limited view of the Recordset. Only records referenced by the array of bookmarks are accessible.

'BeginBOF2VB
Public Sub BOFX2()

    'recordset and connection variables
    Dim rs As New ADODB.Recordset
    Dim Cnxn As ADODB.Connection
    Dim strSQL As String
    Dim strCnxn As String
    
    Dim bmk( 10 )
       
        'open the recordset client-side
    Set rs = New ADODB.Recordset
    strSQL = "Select * from Authors"
    rs.Open strSQL, Cnxn, adUseClient, adLockReadOnly, adCmdText
    Debug.Print "Number of records before filtering: ", rs.RecordCount
    
    Dim ii As Integer
    ii =  0 
    
    If rs.EOF <> True And ii <  11  Then
        Do
            bmk(ii) = rs.Bookmark
            ii = ii +  1 
        rs.Move  2 
        Loop Until rs.EOF
    End If
    
    rs.Filter = bmk
    Debug.Print "Number of records after filtering: ", rs.RecordCount
    
    rs.MoveFirst
    If rs.EOF <> True Then
        Do
            Debug.Print rs.AbsolutePosition, rs("au_lname")
            rs.MoveNext
        Loop Until rs.EOF
    End If
        
     ' clean up
    rs.Close
    Cnxn.Close
    Set rs = Nothing
    Set Cnxn = Nothing
        
End Sub
'EndBOF2VB
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33127709
Azart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot - МСДН я читать умею :)), мне не ясно как данный код работает.
Проблему решил другим путём: сортирую по убыванию и удаляю не нужные записи начиная с наименьшей.
...
Рейтинг: 0 / 0
Не могу найти метод запроса "TOP" для рекордсета.
    #33128447
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Azart

ШАГ 1: определяешь массив букмарков
Код: plaintext
DIM bmk() as variant

ШАГ 2: выбираешь записи, которые тебе надо
(пример для 10 первых записей)
Код: plaintext
1.
2.
3.
4.
i =  0 
WHILE i <  9  and not rs.EOF
  bmk(i) = rs.Bookmark
  rs.MoveNext
WEND

ШАГ3: устанавливаешь фильтр
Код: plaintext
rs.Filter = bmk

если надо фильтровать по каким-то другим критериям, то надо поменять "ШАГ 2"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу найти метод запроса "TOP" для рекордсета.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]