Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу найти метод запроса "TOP" для рекордсета. / 9 сообщений из 9, страница 1 из 1
20.06.2005, 17:42:46
    #33125274
Azart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
Вот етсь метод 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
20.06.2005, 17:55:55
    #33125312
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
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
20.06.2005, 18:07:44
    #33125335
Azart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
автортолько через rs.Source = "SELECT TOP 10 * FROM ..."
Появляется логичный вопрос, а что писать после оператора FROM, мой рекордсет я сам создал, т.е. это не результат SQL запроса в БД.
Если указываю так
Код: plaintext
rs.Source = "SELECT TOP 10 * FROM rs"
, то нечего не работает :(
...
Рейтинг: 0 / 0
20.06.2005, 18:26:36
    #33125373
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
А смысл данных действий?

Если показывать только первые 10 или (N) записей, то можно использовать св-во Bookmark и фильтровать на нем
...
Рейтинг: 0 / 0
20.06.2005, 18:36:39
    #33125389
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
Azart автортолько через rs.Source = "SELECT TOP 10 * FROM ..."
Появляется логичный вопрос, а что писать после оператора FROM, мой рекордсет я сам создал, т.е. это не результат SQL запроса в БД.
Если указываю так
Код: plaintext
rs.Source = "SELECT TOP 10 * FROM rs"
, то нечего не работает :(
В предложении FROM пишется список таблиц - это команда к серверу-базе данных. А сервер-база данных не знает о том, что в Вашем приложении есть такой запрос, как rs. По этому указывайте список таблиц.
...
Рейтинг: 0 / 0
21.06.2005, 15:38:01
    #33127009
Azart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
авторА смысл данных действий?
Мне нужно, чтоб в рекордсете осталось определённое количество записей.
авторсв-во Bookmark и фильтровать на нем Как фильтровать использую свойство Bookmark?
автор По этому указывайте список таблиц. Не помогает. Для примера эксперементировал с 1 таблицей - не работает! Есть ещё варианты?
...
Рейтинг: 0 / 0
21.06.2005, 19:24:10
    #33127659
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
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
21.06.2005, 20:01:57
    #33127709
Azart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
HandKot - МСДН я читать умею :)), мне не ясно как данный код работает.
Проблему решил другим путём: сортирую по убыванию и удаляю не нужные записи начиная с наименьшей.
...
Рейтинг: 0 / 0
22.06.2005, 11:40:24
    #33128447
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу найти метод запроса "TOP" для рекордсета.
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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу найти метод запроса "TOP" для рекордсета. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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