powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка recordset
12 сообщений из 12, страница 1 из 1
Проверка recordset
    #32552144
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как проверить BOF и EOF когда рекордсет не содержит записей?
...
Рейтинг: 0 / 0
Проверка recordset
    #32552180
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что тут сказать... когда рекордсет не содержит записей EOF = BOF = True
...
Рейтинг: 0 / 0
Проверка recordset
    #32552184
Фотография naPmu3aH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем проблема?
Когда нет записей функции IsEOF и IsBOF возвращают не 0.
...
Рейтинг: 0 / 0
Проверка recordset
    #32552204
Фотография naPmu3aH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CRecordset.3a3a.IsEOF.asp
...
Рейтинг: 0 / 0
Проверка recordset
    #32552219
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно bof=eof=true? а то мы спорим и не знаем как проверить...
...
Рейтинг: 0 / 0
Проверка recordset
    #32552485
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть отличия, когда можно использовать BOF-EOF, а когда - нет.
Первое - завершилась ли команда успешно.
Второе - свойство CursorLocation...
...
Рейтинг: 0 / 0
Проверка recordset
    #32555831
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как проверить то?
если скачешь по пустой табл. то все = true, но я знаю, что в каких случаях recordset выдает ошибку.
...
Рейтинг: 0 / 0
Проверка recordset
    #32556489
NikNIkNIk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vse proverki delat` esli рекордсет.RecordCount > 0.
...
Рейтинг: 0 / 0
Проверка recordset
    #32556507
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно на примерчике плиз?
...
Рейтинг: 0 / 0
Проверка recordset
    #32557148
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Завершилась ли команда успешно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    'Создание таблицы товаропродаж:
    .CommandText = "SELECT  ........... " & _
                    "INTO #SEL " & vbCrLf & _
                    "FROM ................ " & vbCrLf & _
                    "WHERE ............"
    Dim NPrCount As Long
    .Execute NPrCount
    If NPrCount =  0  Then
        sbrPan = "Нет продаж за период анализа!..."
        GoTo CloseConnect
    End If
2. В случае асинхронных запросов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
'3. Сюда попадаем, если соединение установлено. Значит, можно выполнять stored proc:
   Set cmd.ActiveConnection = cnn
   With cmd
        .CommandType = adCmdStoredProc
        .CommandText = FP.sp_Name                          '"sp_S_ORG_SelWithMask"
        .Parameters.Refresh
        DoEvents
    End With
    cmd( 1 ).Value = s             'задаём параметры sp
    cmd(1).Size = Len(s)         'Команда подготовлена.
    
'4. К этому моменту должна быть запрограммированы обработчики событий
'   Connection.ExecuteComplete - для получения состояния завершения команды
'   (здесь - хранимой процедуры). Sic! Запускается команда,
'   а состояние её выполнения получаем из ConnectionObj!!!
'   Если выборка - пустая, рекордсет устанавливается в adState.Closed;
'   иначе из рекордсета м.б. передано не более CacheSize записей.
'   По умолчанию CacheSize устанавливается равным 1. Здесь же
'   размер буфера устанавливаем равным pRecordset.RecordCount.
'   Recordset.FetchComplete - для обнаружения события "все данные помещены в буфер"
'6. Запускаем команду "выполнить sp" и направляем выбранние ею записи в rsOrg:
    Set rsOrg = cmd.Execute(, , adCmdStoredProc + adAsyncFetch + adAsyncFetchNonBlocking + adAsyncExecute)
Код: 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.
Private Sub cnE_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
'The ExecuteComplete event is called after a command has finished executing.
On Error GoTo ErrHandler
DoEvents
If Not (pError Is Nothing) Then
    If pError.Number <> 0 Then
        Dim s As String
        s = pError.Number & Comma & pError.Description & Comma & pError.Source & vbCrLf '
        Dim sErr As Error
        For Each sErr In pConnection.Errors
            s = s & sErr.Number & Comma & sErr.Source & Comma & sErr.Description & vbCrLf
        Next sErr
        Err.Clear
        rsOrgRows =  0 : rsMaxRows =  0 
        MsgBox s, vbCritical + vbOKOnly, "Класс " & Me.Name
    End If
Else
    With pRecordset
        If .State = ObjectStateEnum.adStateClosed Then
                rsOrgOK = True
                rsOrgRows =  0 : rsMaxRows =  0 
                RaiseEvent RsDone(rsOrgRows, FP.OldGoal)
        Else
                .CacheSize = .RecordCount
                rsMaxRows = .RecordCount
        End If
    End With
End If
Exit Sub
ErrHandler:
'.......
End Sub
...
Рейтинг: 0 / 0
Проверка recordset
    #32557445
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
поразбираюсь как освобожусь
...
Рейтинг: 0 / 0
Проверка recordset
    #32568685
Lassie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чета стоко строк....
присвоил recordsetу значения и тупо спашиваешь if name .EOF then .....
Всега работало....
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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