Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.08.2011, 15:46
marales marales вне форума
Прохожий
 
Регистрация: 04.08.2011
Сообщения: 13
Репутация: 10
По умолчанию Переход по записям

1 Как в переменную записать номер текущей записи в Ado?
2 Как перейти на случайную запись при нажатии кнопки на форме(рандомно)?
Ответить с цитированием
  #2  
Старый 15.08.2011, 16:05
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Если вы бы изучали теорию бд, то знали бы, что таблицы реляционных бд не имеют номеров записей, но можно создать поле (суррогатный ключ) и хранить там номера
см также ответ на пред тему
http://www.delphisources.ru/forum/sh...ad.php?t=18120
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #3  
Старый 15.08.2011, 16:09
marales marales вне форума
Прохожий
 
Регистрация: 04.08.2011
Сообщения: 13
Репутация: 10
По умолчанию

а разве он внутри не хранит ничего! если мы переходим на первую строчку он же знает что она первая строчка или нулевая я точно не знаю.
Ответить с цитированием
  #4  
Старый 15.08.2011, 16:25
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Цитата:
если мы переходим на первую строчку
Первую строчку в датасете. Если мы сделаем Refresh то порядок следования строк в общем случае может поменяться, в том числе и первая строка
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #5  
Старый 15.08.2011, 16:34
marales marales вне форума
Прохожий
 
Регистрация: 04.08.2011
Сообщения: 13
Репутация: 10
По умолчанию

понятно! ну создал я поле с именем kod там номер строчки типо того счетчик, а теперь вытаскивать как с переходом
Ответить с цитированием
  #6  
Старый 15.08.2011, 16:54
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Вытаскивать FieldByName('Кod').AsInteger
переход bbb:=Locate('Kod','Значение ключа', [])
если bbb = false значит такое значение не найдено.

Если у вас RecNo и RecordCount правильно работают (что не факт) то возможен такой алгоритм.
Находите случайное число Rnd в диапазоне от 1 до RecordCount
Rnd2:=Rnd - Recno
Делаете Next Rn2 раз (в цикле).
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #7  
Старый 16.08.2011, 07:12
marales marales вне форума
Прохожий
 
Регистрация: 04.08.2011
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от Viajero
Вытаскивать FieldByName('Кod').AsInteger
переход bbb:=Locate('Kod','Значение ключа', [])
если bbb = false значит такое значение не найдено.

вот это помогло, спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter