Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Перемещение записи   Найти похожие ветки 

 
Yuri Btr ©   (2004-03-03 18:49) [0]

Ув. мастера, подскажите возможно ли перемещение записи в таблице Access (работа через ADO), допустим с последней позиции на n-ую позицию?
Дело в том, что по документации InsertRecord для таблиц Access он вставляет запись в конец таблицы. И что такое метод MoveBy?
Заранее спасибо.


 
Anatoly Podgoretsky ©   (2004-03-03 18:50) [1]

Чем быстрее ты заюудешь, что такое физическое расположение в служебных файлах базы, тем лучше для тебя будет.


 
Плохиш   (2004-03-03 18:55) [2]


> заюудешь

Во! даже АП заикаться начал


 
Yuri Btr ©   (2004-03-03 19:08) [3]

to Anatoly Podgoretsky ©  
А как вы считаете, для чего реализован InsertRecord? и почему тогда не оставить только Appendrecord?


 
Плохиш   (2004-03-03 19:14) [4]


> Yuri Btr ©   (03.03.04 19:08) [3]

Ну, например, для совместимости со старыми версиями программ


 
sniknik ©   (2004-03-03 19:19) [5]

Yuri Btr ©   (03.03.04 19:08) [3]
почитай справку внимательно, там должно быть оговорено про sql-ные базы данных.


 
Yuri Btr ©   (2004-03-03 19:19) [6]

to Плохиш
???


 
Плохиш   (2004-03-03 19:19) [7]


> sniknik ©   (03.03.04 19:19) [5]

Не успел про справку :-))


 
Yuri Btr ©   (2004-03-03 19:29) [8]

to All
Первым делом я смотрю справку,..., в последнюю очередь - спрашиваю здесь.
В справке вот что
...
For unindexed dBASE, FoxPro, and Access tables, the record is inserted into the dataset at the end.
For SQL databases, the physical location of the insert is implementation-specific. For indexed tables, the index is updated with the new record information.
...
1 вариант для неидексированных ... Access таблиц - новая строка вставляется в конец.
2 вариант для SQL таблиц - зависит от реализации. Для индекированных таблиц индекс обновляется вместе с новой записью.


 
Anatoly Podgoretsky ©   (2004-03-03 19:46) [9]

Вот тебе и доказательство, что Insert для красоты, зватило бы и Append


 
Yuri Btr ©   (2004-03-03 20:22) [10]

Так значит нельзя...
Грустно, ну что же прийдётся вводить своё поле нумерации, со всеми вытекающими отсюда последствиями...


 
Anatoly Podgoretsky ©   (2004-03-03 20:38) [11]

Оно давно потеряло смысл с ростом баз и развитием индексации, ну представь себе вставку в начало таблицы скаэем в 1 миддион записей, да к тому эе физический порядок ни чего не значит, кроме последовательного добавления в конец и то в устаревших технологиях. Индексы и еще раз индексы.


 
Yuri Btr ©   (2004-03-03 20:52) [12]

to Anatoly Podgoretsky ©  
Задача была такая...
Имеется несколько не очень больших списков имён файлов (10-100 шт, ну может до тысячи), у каждого имени файла своя информация, состоящая из нескольких полей (что то наподобие размер, тип и т.д.), эта информация строго упорядочена, т.е. место файла в списке имеет значение. Этот список нужно хранить на диске и часто к нему обращаться, если например пользователь надумает удалить файл, группу файлов или поменять местоположение файла, также нужно будет добавлять файлы. Что бы не морочить себе голову всякими текстовыми вариантами сохранения этих списков на диске, я решил взять access через ADO. Каждый список в своей отдельной таблице, поля чётко сформированны, заботиться о сохранении не надо. Но вот в одной статье прочитал что все ADO компоненты работают через ADOcommand - т.е. через SQL, а в SQL насколько я знаю вообще нет такого понятия как физическое положение записи в базе...


 
Anatoly Podgoretsky ©   (2004-03-03 20:54) [13]

Проблема в проектировании базы, если порядок имеет значение, значит должно быть поле порядок и по нему сортировка/выборка


 
Yuri Btr ©   (2004-03-03 20:58) [14]

ВОТ ИМЕННО, блин...
Это значительно усложняет всю работу. Ведь теперь чтобы удалить например запись с порядковым номером 30 при диапазоне номеров от 1 до 100, нужно перелопатить все записи в таблице (99 шт) и уменьшить номера записей (которые выше 30) на единицу.


 
Anatoly Podgoretsky ©   (2004-03-03 21:05) [15]

Тебе стоит почитать теорию баз


 
Yuri Btr ©   (2004-03-03 21:05) [16]

Также имеется проблема визуализации данных, раньше можно было например просто построчно (по записи) выводить инф.ю о каждом файле например в ListBox, порядок обеспечивался физ. расположением строки. Теперь нужно их считывать заранее во временный список, сортировать и выводить в ListBox...


 
Zacho ©   (2004-03-03 21:11) [17]

Зачем временный список ?
Индексы и еще раз индексы. (С) Anatoly Podgoretsky ©   (03.03.04 20:38) [11]


 
Yuri Btr ©   (2004-03-03 21:20) [18]

to Zacho ©
В смысле - внутренняя сортировка по индексу, а затем вывод уже в правильном порядке?


 
Zacho ©   (2004-03-03 21:32) [19]

Просто подключаешь нужный индекс, и записи в НД уже и так будут в "правильном" порядке


 
Yuri Btr ©   (2004-03-03 21:36) [20]

Также есть прекрасная ф-ия в SQl - ASC или DESC, и всё...


 
Zacho ©   (2004-03-03 21:48) [21]

Это не функция, а часть оператора SELECT
SELECT .. FROM .. ORDER BY .. [ASC|DESC]



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.056 c
1-1079446301
Sirruf
2004-03-16 17:11
2004.04.04
OnMouseMove


14-1079010513
SPeller
2004-03-11 16:08
2004.04.04
Абсурд с явкой на выборы


1-1079118708
Senti
2004-03-12 22:11
2004.04.04
Проблема со ScrollBras в Memo !


1-1079469908
Rauf
2004-03-16 23:45
2004.04.04
Помогите справиться с размерами окна.


3-1078512180
Игорь Ор.
2004-03-05 21:43
2004.04.04
Вывод в один DBGrid поля из нескольких связанных таблиц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский