powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обработать результат запроса если результат - (0 row(s) affected)
9 сообщений из 9, страница 1 из 1
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858600
dontKnow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неуверен в том ли разделе спрашиваю и верно ли формулирую вопрос.

На VB2008 черезз ADO к подключился MSSQL7
и запрашиваю данные из разных таблиц что бы потом их в результирующий DataGridView вывести

на таблице Заказы ступор....
потому что есть клиенты без заказов и тогда в моем sql запросе результат нулевой

например у клиента №1218 нету заказов
номер клиент берется другим запросом

Код: plaintext
1.
2.
3.
4.
5.
StrSQL = "Select TOP 1 Код, Стоимость from заказы where клиент_id =" & Adors.Fields( 0 ).Value & "order by row_id desc"
Adors2 = Adoconn.Execute(StrSQL)


tempVal=Adors2.Fields( 0 ).Value
на запуске такая ошибка:

авторBOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись.

если сделать так

Код: plaintext
1.
2.
3.
4.
5.
[color=red]Do While (Not Ados2.EOF)[/color]
     tempVal=Adors2.Fields( 0 ).Value
[color=red]Adors2.MoveNext()
Loop[/color]


то при выполнении то что за пару секунд делалось зависает надолго... больше 15 минут.

вобщем мне надо как-то в результирующую таблицу добавить пустые поля(если нету заказов)
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858631
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: dontKnow
> если сделать так
> то при выполнении то что за пару секунд делалось зависает надолго... больше 15 минут.

Это правильно, хорошо, хоть не стал дожидатся окончания бесконечного цикла

> вобщем мне надо как-то в результирующую таблицу добавить пустые поля(если нету заказов)

Проверяй на
Код: plaintext
Ados2.EOF = True And Ados2.BOF = True
и если записей нет, тогда просто добавь новую запись
через Append и заполни нужные поля "пустыми" данными.

Хотя может ещё есть варианты, не знаю :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858638
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка где-то в округе.
Если запрос не вернул ни одной строки то rs.Eof будет выставлен сразу.
Код: plaintext
1.
2.
3.
set rs = conn.execute(sql)
do while not rs.eof
    print rs( 0 )
loop
Либо напечатает первое поле из всех записей по порядку, либо ничего не напечатает.
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858643
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
dontKnow,

...и вам не болит дергать сервер для каждого клиента ?
почему не получить всё сразу - одним запросом ?
что-то типа этого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select клиенты.клиент_id, заказы.Код, заказы.Стоимость
from клиенты
left join заказы 
  on клиенты.клиент_id = заказы.клиент_id
left join
(select клиент_id, max(row_id) as r_id from заказы group by заказы.клиент_id) a
  on заказы.row_id = a.r_id
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858669
dontKnow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Болльшое спасибо
Игорь Горбонос - вашим вариантом возспользуюсь

Гость ё - ваш вариант изучу ) тоже спасибо
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858693
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ничего, что перед order by пробела нет? По идее должна быть другая ошибка "при запуске".
Если это так, то цикл стал бесконечным из-за on error resume next где-то перед этим куском кода. Рекордсет закрыт, EOF вызывает ошибку, условие не срабатывает, цикл крутится, крутится…

Еще ошибка может быть из-за того же resume next, отсутствия option explicit и Ados2.EOF — буква r пропала — с теми же спецэффектами.
Короче, бейте себя по рукам линейкой.
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858784
dontKnow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

о оригинале и пробел есть и имя без очепятки. Конспирология)
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858819
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offdontKnowКонспирология

Конспирация
Код: plaintext
 >:-!
...
Рейтинг: 0 / 0
Как обработать результат запроса если результат - (0 row(s) affected)
    #36858916
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro+
offdontKnowКонспирология

Конспирация
Код: plaintext
 >:-!
Точно, конспирологией занимаемся мы, разгадывая ребусы там, где их нет.

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


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