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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.07.2010, 00:49
jziiiiiii jziiiiiii вне форума
Прохожий
 
Регистрация: 11.02.2008
Сообщения: 6
Репутация: 10
По умолчанию adotable+accsess

Есть таблица в акцес, подключеная к делфи через адотейбл.
пишу
form1.adotable10.recno:=1;
showmessage(form1.adotable10.fields .fields[0].asstring);
выдает мне не первую запись а десятую, также пробовал
form1.adotable10.First;
showmessage(form1.adotable10.fields .fields[0].asstring);
тоже самое.
в таблице записи одинаковые, у первой счётчик 506, у десятой 515.

В чем загвоздка?
Ответить с цитированием
  #2  
Старый 11.07.2010, 05:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну так отсортируй их.
Если не ошибаюсь - достаточно указать поле, по которому у тебя индекс есть (в соотв. св-ве).
Ответить с цитированием
  #3  
Старый 11.07.2010, 16:31
jziiiiiii jziiiiiii вне форума
Прохожий
 
Регистрация: 11.02.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну так отсортируй их.
Если не ошибаюсь - достаточно указать поле, по которому у тебя индекс есть (в соотв. св-ве).

Просто нужно понять почему в таблице физически первая запись одна, а ADOtable выдаёт другую. Кто сталкивался напишите. Спасибо.
Ответить с цитированием
  #4  
Старый 11.07.2010, 20:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Потому что стандартом не регламентируется порядок записей.
Т.е. тебе никто не гарантирует какую-либо последовательность записей. Что бы получить записи в определенном порядке, тебе надо приложить некоторые усилия - либо ORDER BY в запросе, либо указание индекса в таблице.
Ответить с цитированием
  #5  
Старый 11.07.2010, 20:53
jziiiiiii jziiiiiii вне форума
Прохожий
 
Регистрация: 11.02.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Потому что стандартом не регламентируется порядок записей.
Т.е. тебе никто не гарантирует какую-либо последовательность записей. Ч
- Довольно неожиданно)). Должно быть всё четко описанно иначе это не стандарт, а бред. form1.ADOTable10.Append; - добавляет записи в конец таблицы.

Цитата:
Сообщение от lmikle
либо указание индекса в таблице.
Если можно, чуть подробнее.
Ответить с цитированием
  #6  
Старый 11.07.2010, 21:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Нет, все нормально. Просто с точки зрения СУБД все записи равнозначны. поэтому порядок их и не определен. Почитай какую-нить толковую книжку про SQL. А в конец добавляет - потому что это уже работа в памяти.

Хотя, обычно СУБД сортирует по первичному ключу.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter