Выборка записи

ап
Дата: 20.11.2006 21:01:47
Здравствуйте!
Столкнулся с проблемой, возможно, кому-то покажется смешным, но нужно следующее
выбрать из таблицы запись определенного индекса, тоесть, например, вторую запись или третью?
В таблице есть поле ID автонамбер, но при удалении записей из таблицы упорядоченность нарушается, а потому этот вариант не подходит.
Помогите!
proposed amendment
Дата: 20.11.2006 21:13:01
ап
упорядоченность нарушается


какую упорядоченность вы имеете в виду? сортировку по определенному полю?
или естественный порядок записей в последовательности как вы их заносили?
mds_world
Дата: 20.11.2006 21:13:20
Делаете Select на ID с сортировкой и они выстроятся по порядку. Берте нужный.
proposed amendment
Дата: 20.11.2006 21:30:49
mds_world
Делаете Select на ID с сортировкой и они выстроятся по порядку. Берте нужный.


Autoincrement не обеспечивает последовательного порядка записей по прирастающему АйДи.

запросом может быть добавлена запись с АйДи меньшим чем последний (больший) добавленный счетчиком. Впрочем, вы, естественно и сами это знаете, я просто поясняю почему переспросил автора о том, что он подразумевает под "упорядоченность нарушается"
ап
Дата: 20.11.2006 21:31:43
автор
какую упорядоченность вы имеете в виду? сортировку по определенному полю?
или естественный порядок записей в последовательности как вы их заносили?

второе.

автор
Делаете Select на ID с сортировкой и они выстроятся по порядку. Берте нужный.

Возможно, я туплю, но предположим, мне нужна третья запись. Вы имеете ввиду, что мне нужно записать SELECT blabla FROM TABLE1 WHERE ID=3 ORDER BY ID ??
а если, запись, у которой ID=3 была удалена, и всместо нее теперь третья запись имеет ID=4?
mds_world
Дата: 20.11.2006 21:50:50
Вот именно об этом вам говорил proposed amendment. А Акцесс нет упорядоченности без сортировки. Варианты могут быть любые. Если вам нужна упорядоченность по последовательности их занесения, то следует подумать о некотором поле-признаке, например дата-время занесения записи в БД.
proposed amendment
Дата: 20.11.2006 21:55:10
ап
автор
какую упорядоченность вы имеете в виду? сортировку по определенному полю?
или естественный порядок записей в последовательности как вы их заносили?

второе.

автор
Делаете Select на ID с сортировкой и они выстроятся по порядку. Берте нужный.

Возможно, я туплю, но предположим, мне нужна третья запись. Вы имеете ввиду, что мне нужно записать SELECT blabla FROM TABLE1 WHERE ID=3 ORDER BY ID ??
а если, запись, у которой ID=3 была удалена, и всместо нее теперь третья запись имеет ID=4?


СУБД оперируют данными на иных уровнях абстракций - в Access нет сортировки по естественному порядку занесения записи.

если вы запросите данные (например) Select * from YourTable where Record ID = 3 а записи с таким значением RecordID нет в базе, то Access все равно буквально выполнит вашу инструкцию и вернет вам ровно 0 (ноль) записей...



вы можете попробовать SQL инструкции типа select top 1 <...> from (select top 10 <...> from YourTable order by RecordID desc) этот запрос вернет вам десятую запись, вне зависимости от того какой у записи АйДи
ап
Дата: 20.11.2006 22:54:39
автор
Вот именно об этом вам говорил proposed amendment. А Акцесс нет упорядоченности без сортировки. Варианты могут быть любые. Если вам нужна упорядоченность по последовательности их занесения, то следует подумать о некотором поле-признаке, например дата-время занесения записи в БД.

вы бы вопрос мой прочитали, уважаемый.

автор
вы можете попробовать SQL инструкции типа select top 1 <...> from (select top 10 <...> from YourTable order by RecordID desc) этот запрос вернет вам десятую запись, вне зависимости от того какой у записи АйДи

спасибо, я подумал об этом направлении сразу, думал, может есть еще какое-то решение, о котором я не знаю.
всем сэнкс.
mds_world
Дата: 21.11.2006 08:19:25
ап
вы бы вопрос мой прочитали, уважаемый.

Безусловно прочитал. Но мне не видна ваша технология. Если на локальной, уединенной машине естественный порядок записей еще что-то значит, то что он обозначает в сети? В сети очень вероятны события когда запись, начатая раньше последующей, заканчивается позже ее, когда происходят удаления записей на разных ПК и тому подобные деформации набора записей. Что тогда представляет собой "естественный" порядок записей? Именно поэтому, когда важна последовательность ввода, это делается специальными мерами, типа вставки поля даты-времени записи и его автоматического заполнения.
ап
Дата: 21.11.2006 14:00:49
автор
Безусловно прочитал. Но мне не видна ваша технология. Если на локальной, уединенной машине естественный порядок записей еще что-то значит, то что он обозначает в сети? В сети очень вероятны события когда запись, начатая раньше последующей, заканчивается позже ее, когда происходят удаления записей на разных ПК и тому подобные деформации набора записей. Что тогда представляет собой "естественный" порядок записей? Именно поэтому, когда важна последовательность ввода, это делается специальными мерами, типа вставки поля даты-времени записи и его автоматического заполнения.

Что вы говорите?
Ааабалдеть.