Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глючный BDE 
:(
    Опции темы
p0s0l
Дата 12.7.2003, 20:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











table1.Filter := {тут выражение};
table1.Filtered := true;
table1.First;
while not table1.EOF do table1.Next;

Вот такая процедурина виснет. А виснет потому что после того как указатель попрыгает последовательно где-то по 10-20 записям возвращается в начало таблицы.
Table1 - Paradox, с активным вторичным индексом по обычному Integer-полю.
Если индекс отключить, то все ОК, но мне индекс нужен.
Как быть ?

И еще:
table2.Append;
// Занесение данных
table2.Post

Это выдаёт ошибку "Key violation", хотя в table2 Primary Index - поле AutoInc.
Как же тогда может выскочить Key violation ?

Причем эти глюки возникают крайне редко, но возникают, база - около 20000 записей.

Ну второй случай я привел так просто, он решается путем ручного увеличения поля.
А первый я не знаю как обойти.

Может кто-нибудь знает как обойти первый глюк и из-за чего вообще они возникают ?

  Вверх
Vit
Дата 13.7.2003, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Использовать Query и SQL проблемы исчезнут, и первая и вторая. А также после post попробовать ставить метод FlushBuffers


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 13.7.2003, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Дак SQL - это тормознее раза в 2-3 получается, у меня SQL запрос получился секунд 10...
А это не приемлимо.

А FlushBuffers - у меня таблица регулярно открывается и закрывается, так что этого не надо.



--------------------
С уважением, г-н Посол.
PM   Вверх
Vit
Дата 14.7.2003, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(p0s0l @ 13.7.2003, 08:26)
Дак SQL - это тормознее раза в 2-3 получается, у меня SQL запрос получился секунд 10...
А это не приемлимо.

Это слишком долго, скорее всего нужные индексы отсутствуют, т.к. запрос должен проходить не медленнее, чем досупом через таблицу...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Medved
Дата 15.7.2003, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Vit @ 15.7.2003, 02:10)
Это слишком долго, скорее всего нужные индексы отсутствуют, т.к. запрос должен проходить не медленнее, чем досупом через таблицу...

это Вит актуально только для клиент-серверной модели БД. С локальными БД "доступ через таблицу" будет работать гораздо шустрее.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Akella
Дата 15.7.2003, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата
И еще:
table2.Append;
// Занесение данных
table2.Post
Это выдаёт ошибку "Key violation", хотя в table2 Primary Index - поле AutoInc.
Как же тогда может выскочить Key violation ?


У меня тоже вылетала такая ошибка. Я обнаружил, что у меня вызывается метод POST два раза подряд.
Посмотри, может у тебя после добавления записи происходит переход на другую, а при этом метод POST вызывается автоматически.
PM MAIL   Вверх
p0s0l
Дата 15.7.2003, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Нет, там все в порядке. Программа работает идеально где-то неделю, а потом - раз и вылезает глюк. Хотя до появления глюка эта часть программы работала нормально, и эта процедурина используется довольно часто. Но индекс отключишь - и глюка как не бывало, может работать сколько угодно. В ручную же пересортировывать всю таблицу - это больше часа получается, поэтому без индекса нельзя.


--------------------
С уважением, г-н Посол.
PM   Вверх
Medved
Дата 15.7.2003, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата
Нет, там все в порядке. Программа работает идеально где-то неделю, а потом - раз и вылезает глюк. Хотя до появления глюка эта часть программы работала нормально,


2p0s0l, что-то вообще непонятное.... Чую нутром где-то сам недосмотрел....


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
p0s0l
Дата 15.7.2003, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



2Pegas, говорю ведь, деалю table1.next - и глючит, где я тут ошибся ? table1 с маленькой буквы написал ?



--------------------
С уважением, г-н Посол.
PM   Вверх
Medved
Дата 16.7.2003, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(p0s0l @ 15.7.2003, 18:33)
2Pegas, говорю ведь, деалю table1.next - и глючит, где я тут ошибся ? table1 с маленькой буквы написал ?

Запости исходник.
А еще лучше на мыло пришли.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
p0s0l
Дата 16.7.2003, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



2Pegas:
Смотри: работает прога нормально некоторое время, потом вылазит глюк (предположим что даже
по моей вине). Беру там же на месте пишу НОВУЮ прогу, которая только и делает что:
table1.Open;
table1.IndexName := 'ix1';
table1.Filter := '...'; table1.Filtered := true;
while not table1.eof do table1.next

Прога виснет и как я уже писал из-за того что, например,
после записи №10 идет №15, №500, №1246, потом снова №10, №15, №500, №1246, №10 и т.д. вечно

Т.е. сама таблица каким-то образом стала глючной, я вот про че говорю.

Я не знаю, что нужно написать, чтобы добиться этого глюка ? Что я делал с таблицами, дак
это все стандартные методы типа open, append и т.д.

Ты хочешь одним взглядом на исходник (~7000 строк) определить правильность моей программы ?
Если хочешь, то я тебе его вышлю, но это тебе ничего не даст, т.к. глюк вылазит где-то после
недели использования программы, а ты будешь этим заниматься ? Я пытался у себя
дома заставить появиться этот глюк - но нет, не появляется. А там где стоит эта программа,
где её и юзают - там-то он и вылазит как назло.

Вооще у меня давно уже такое желание - плюнуть на тэтэйблы и написать все это дело вручную.
Будет спокойнее и намного (как я думаю) быстрее.
Тогда уж если глюк и будет - то моей вине, а щас я уверен на 99% - что с BDE не все ОК.
Как я думаю, если я что-то не так делаю с таблицей, BDE не должен мне давать делать этого,
а ведь дает (если все-таки я деляю чо-то неправильное), или же сам мне подгавнивает потихонечку...




--------------------
С уважением, г-н Посол.
PM   Вверх
Medved
Дата 16.7.2003, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Прошу только не обижаться, но на 99% уверен, что проблема как раз-то не в BDE. (не потому что BDE безгрешный, просто у меня на счет этой проблеммы есть свои предположения)

Мне не надо высылать весь исходник, а вышли:

Цитата

Беру там же на месте пишу НОВУЮ прогу, которая только и делает что:
table1.Open;
table1.IndexName := 'ix1';
table1.Filter := '...'; table1.Filtered := true;
while not table1.eof do table1.next

Прога виснет и как я уже писал из-за того что, например,
после записи №10 идет №15, №500, №1246, потом снова №10, №15, №500, №1246, №10 и т.д. вечно

Т.е. сама таблица каким-то образом стала глючной, я вот про че говорю.


Т.е. эту маленькую программку, и саму таблицу. Я уверен, что найду ошибку.




--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
p0s0l
Дата 16.7.2003, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



2Pegas: Только подожди недельку, а то мне надо закачать себе то эту таблицу (я вожусь прямо там на месте, на дискете её не притащить).



--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.