powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос о RecNo
22 сообщений из 22, страница 1 из 1
Вопрос о RecNo
    #33245665
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, all!

Помогите, пожалуйста, разобраться с проблемой использования RecNo в С++ Builder 6. Данные из таблицы выбираю через BDE 5.2 с помощью TQuery и TTable. При обращении к RecNo он выдает результат -1. Пробовал с разными таблицами и базами данных (Oracle).

Пасибо.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33245695
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RecNo, как и RecordCount не всегда соответствуют действительности. Просто запомни это и не пользуйся ими, или пользуйся когда уверен в результате
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33245734
Не спозиционирована же запись?! или тебе нужно число записей?
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33245845
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужна позиция записи в запросе для возврата при последующем обращении с теми же параметрами запроса.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33245966
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй букмарки ...


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246030
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rujimНужна позиция записи в запросе для возврата при последующем обращении с теми же параметрами запроса.
Это неверный подход!!! Более того, ошибочный в самой своей сути!
В SQL нигде не оговаривается порядок следования записей (если, конечно, не задано ORDER BY...). Стандартом гарантируется только то, что результирующий набор БУДЕТ СОДЕРЖАТЬ ВСЕ ЗАПИСИ, УДОВЛЕТВОРЯЮЩИЕ УСЛОВИЯМ ЗАПРОСА. То есть, одна и та же запись при последовательных выполнениях одного и тот же запроса может иметь разный № внутри результирующего набора...
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246076
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
order by задан. Дело в том, что сам RecNo не вычисляет значение записи.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246235
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rujimorder by задан. Дело в том, что сам RecNo не вычисляет значение записи.
Ну, блин! Вам "шашечки или ехать"?
Рассматривайте RecNo как индикатор/флаг/"указатель" для следующего утверждения: сейчас я нахожусь на записи № <RecNo>...
И если написать: "<Набор записей>->RecNo=100000;", то физического перехода на запись с таким номером не произойдет... Просто значение у RecNo изменится, а позиция останется прежней...
Для физического перехода к записи по известному номеру надо сделать:
<Набор записей>->First();
<Набор записей>->MoveBy(<Номер записи-1>);
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246295
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я прекрасно понимаю концепцию выборки и установки курсора в заданное место в запросе, но я не могу из RecNo взять число, отличное от -1. Как его заставить работать или забыть о нем, как советует Карабас Барабас???
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246333
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rujimЯ прекрасно понимаю концепцию выборки и установки курсора в заданное место в запросе, но я не могу из RecNo взять число, отличное от -1. Как его заставить работать или забыть о нем, как советует Карабас Барабас???
если после выполнения кода:

<Набор записей>->First();
for(int i=0;i<3;i++)
<Набор записей>->Next();

RecNo все равно равен -1, то я ничего не понимаю в этой жизни...
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246684
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если у тебя из набора будет удалена запись до твоего запомненного RecNo ? То-то !

У тебя должен быть первичный ключ, позиционируй по нему, Locate в помощь.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246781
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую через TClientDataSet и все проходит нормально. Тут же меняю на TTable и значение RecNo = -1. Проблемы однозначно с TTable. Попробую поискать update на Builder.

Спасибо за ответы.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246828
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
update не поможет
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246913
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это известная бага BDE. Используй другой метод доступа (DOA, ODAC)
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33246916
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работать с Oracle через TTable это мазохизм, верно предыдущие товарищи сказали.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33248745
rujim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт! Глюки BDE. Однозначно!

Спасибо за отклики.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33248826
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что букмарки кто то отменил ?


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33256239
BasV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос закрыт! Глюки BDE. Однозначно!
Это не глюки:
1. BDE создано сравнительно давно .
2. И даже не все ODBC,ADO возврашают RecNo он просто не нужен.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33335189
kowarai
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как мне узнать, добрался я до верхней строчки или нет?
иначе она плюется exception'ом, по случаю BOF = true;
нужно поставить обработку на нажатие стрелочек для перемещения по строкам ADOQuery... RecNo = -1 понятно дело...
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33335366
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kowaraiа как мне узнать, добрался я до верхней строчки или нет?
иначе она плюется exception'ом, по случаю BOF = true;
нужно поставить обработку на нажатие стрелочек для перемещения по строкам ADOQuery... RecNo = -1 понятно дело...
Вот и лови этот exception в try-catch блоке...
Если надо - выводи что-нибудь через MessageBox, если не надо, то оставь catch пустым...
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33336215
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rujimНужна позиция записи в запросе для возврата при последующем обращении с теми же параметрами запроса.

Наивный... Ты полагаешь, что какое-то RecNo идентифицирует запись ....
Нет, запись идентифицируется только первичным ключём таблицы.
...
Рейтинг: 0 / 0
Вопрос о RecNo
    #33336219
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rujimВопрос закрыт! Глюки BDE. Однозначно!


Глюки --- они в голове. У тех, кто придумал этот RecNo и тех, кто пытается им пользоваться. BDE здесь почти ни при чем (кроме факта, что те, кто придумал BDE и RecNo работали в одной конторе).
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос о RecNo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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