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

Вниз

Летит база от ShotDown, глюк сортировки, неверная сортировка   Найти похожие ветки 

 
Bee-Bee ©   (2006-02-24 10:53) [0]

Такой глюк! Заносятся значит в DB записи, мнооого записей! После чего Чубайс дергает рубильник и свет выключается! И вот тут то я понимаю (после очередного запуска программы), что надо вводить все заново!!!! как можно этого избежать! или в крайнем случаи востановить базу данных каким то образом???
И ишо вопрос! надо сделать автоматическую сортировку записей! Ключевое поле отпадает сразу т.к. есть совпадения! Индексированное поле вообще запрещает редактировать базу! сортировка програмным путем долгая и не всегда эффективная! что делать???
Да ишо!!! при ключевом (уникальном) поле в таблице сортировка происходит по возрастанию! Пробовал изменить сортировку в TTable, не выходит!!! Подскажите что делать!!!


 
Desdechado ©   (2006-02-24 11:10) [1]

> свет выключается! как можно этого избежать
Поставить генератор и/или UPS. Вот если б сгорела мамка, ты какие вопросы задавал бы?

> Индексированное поле вообще запрещает редактировать базу!
Наглая деза. Использовать TQuery+TUpdateSQL. Индекс может быть как по возрастанию, так и по убыванию, а также по нескольким полям.

PS и не надо так орать


 
Neo Trinitron ©   (2006-02-24 11:50) [2]

1. Реиндексация рулит! Попробуй после сбоев позапускать: 95 из ста - поможет.

2. Может я чего путаю, но когда создаёшь таблицу, в ней можно указывать ключ и порядок сортировки. Почему бы не юзать TQuery? Сразу все проблемы с сортировкой отпадут! И ещё глядишь, быстрее заработает (Хотя DB...разве что DCOM...)!


 
Bee-Bee ©   (2006-02-24 17:59) [3]


> 1. Реиндексация рулит! Попробуй после сбоев позапускать:
>  95 из ста - поможет.
>
> 2. Может я чего путаю, но когда создаёшь таблицу, в ней
> можно указывать ключ и порядок сортировки. Почему бы не
> юзать TQuery? Сразу все проблемы с сортировкой отпадут!
> И ещё глядишь, быстрее заработает (Хотя DB...разве что DCOM.
> ..)!


Тогда ответный вопрос! как делать переиндексацию програмно в делфях?
И насчет ключа! порядок сортировки указываю, но ему поровну! он все равно по возрастанию сортирует??? и можно ли делать ключевое поле неуникальным???


 
Desdechado ©   (2006-02-24 18:23) [4]

> можно ли делать ключевое поле неуникальным
В библиотеку тебе надо, а не в форум.
Ключи бывают разные, по одним можно, по другим нельзя.


 
так себе   (2006-02-24 20:15) [5]

Пока будешь искать UPS добавь в программу:
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
DbiSaveChanges(table1.handle);
end;

Максимум - потеря последней записи при отключении эл.питания.
Потеря записей при эл.сбое происходит из-за того, что в локальных базах Paradox метод Post записывает данные не на жесткий диск, а только в память. Приведенная выше строка кода после вызова метода Post для каждой записи записывает содержимое буфера BDE на жесткий диск. Можно также использовать для этой цели метод TDBEDataSet FlushBuffers, например:
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
Table1.FlushBuffers;
end;

Этот метод можно также вызывать и при обработке события AfterDelete.


 
Desdechado ©   (2006-02-24 20:42) [6]

> Пока будешь искать UPS добавь в программу
а потом заставь и винду сбросить буфера на диск, а то ведь она тоже кэширует


 
Bee-Bee ©   (2006-02-25 11:35) [7]

Спасибо за помощь!!! очень благодарен!


 
Bee-Bee ©   (2006-02-26 18:28) [8]

Значит вот! сам разобрался с проблеммой!
Есть два типа полей (уникальное и неуникальное)
сортировка производится по разному!
Уникальное поле (создание таблицы в DataBaseDesktop):
Задаем этому полю ключ (знак * на столбце Key)
Далее выбираем в поле Table Properties - Secondary Index
жмем define и создаем индекс для нашего ключевого поля
Ставим галочки Unique, MaINTAINED, и если упорядочить по убыванию, то Descending
сохраняем
заходим в делфи и делаем настройки в TTable ---- IndexName=имя индекса которое мы создали
неУникальное поле (создание таблицы в DataBaseDesktop):
Все тоже самое, только создаем новое поле (например "cod") с типом "+" и ставим * на его "Key" и при создании Secondary Index не ставим галку на Unique
Вот и вся проблемма :)


 
Bee-Bee ©   (2006-02-26 18:30) [9]

Да забыл при неУникальном поле ставить Key на поле по которому хотим сортировать не надо!
И сортировка происходит и на редактирование не ругается!!!


 
evvcom ©   (2006-02-27 11:03) [10]


> После чего Чубайс дергает рубильник и свет выключается!

Все беды от Чубайса, оказывается! Ах, он рыжий лис!


 
Neo Trinitron ©   (2006-02-27 11:13) [11]

Bee-Bee, чесно говоря я уже не могу привести ни одного весомого аргумента использования компонента TTable. TQuery - вот что работает действительно интересно, при том если будешь писать клиента Oracle, MS Sql и пр. (клиент-сервер, короче), то TTable практически лишит твой клиент той самой изюминки для которой вся каша заваривалась. Sql не так сложен чтобы его не юзать в повседневной программерской жизни. Чесно говоря вся работа в Database Decktop могла быть заменена на Sql строку order by поле desc. Удач.



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

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

Наверх





Память: 0.48 MB
Время: 0.014 c
3-1141225115
Hadroran
2006-03-01 17:58
2006.04.23
Коннект к базе IB


1-1142646504
Кашперук Иван
2006-03-18 04:48
2006.04.23
Открыть файл Word


3-1141289804
Oxy
2006-03-02 11:56
2006.04.23
Строка подключения к аксессу


11-1124694432
Fanny
2005-08-22 11:07
2006.04.23
Работаю с PIniFile


15-1143896469
_duk
2006-04-01 17:01
2006.04.23
Защита





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский