Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Genereal SQL error   Найти похожие ветки 

 
_sulent   (2004-12-08 07:29) [0]

Вот запрос:
delete * from table1
where code in (select code from table2)


Подскажите что может быть. Первый раз запрос выполняется, а на второй выдает ошибку:
General SQL error
Out of memory

Это все выполняется на ms Access, в table2 около 29000 записей, а в table1 около 100000.

Подскажте что может быть здесь не так, и в чем проблема. Судя по памяти, запрос должен выполниться без особых проблем. Cel 1.7, 256 Mb.

Заранее благодарен!


 
ЮЮ ©   (2004-12-08 07:33) [1]

* по синтаксису не положена


 
_sulent   (2004-12-08 07:33) [2]

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


 
_sulent   (2004-12-08 07:37) [3]

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


 
sniknik ©   (2004-12-08 08:03) [4]

> Проверили без транзации, прошло нормально.
а как ее делаеш? и закрываеш ли до второй?


 
_sulent   (2004-12-08 08:24) [5]

Закрывается...
вариант как обычно
Form1.database1.StartTransaction;
try
 ...
 Form1.Database1.commit;
except
 Form1.database1.rollback;
end;


 
sniknik ©   (2004-12-08 08:40) [6]

ну вот стоит только показать код (даже такой мизерный) а уже 2 глюка видно...
(ну или то что я воспринимаю практически глюком ;о)))

первое к аксесу обращаешся через BDE, второе транзакцию делай sql-ой командой (как и остальное)

и еще (когда избавишся от описанных "глюков") в нормальном варианте на транзакцию влияет параметр реестра
MaxLocksPerFile
Данный параметр запрещает превышение определенного числа в транзакциях, выполняемых ядром Microsoft Jet. Если число попыток блокировки в транзакции превышает это значение, транзакция разбивается на две части, занесение в которых производится независимо. Этот параметр был добавлен для предотвращения срывов на сервере Netware 3.1 при превышении предела блокировок Netware, а также для повышения быстродействия при работе как с Netware, так и с NT.

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


 
sniknik ©   (2004-12-08 08:42) [7]

черт третий "глюк" пропустил, вместо except делай finally (все одно ошибку не обрабатываеш)


 
Johnmen ©   (2004-12-08 09:17) [8]

>sniknik ©   (08.12.04 08:42) [7]
>вместо except делай finally

Коль, ты что-то напутал...:)


 
_sulent   (2004-12-08 09:19) [9]

да не придирайся, я просто описал все...


 
sniknik ©   (2004-12-08 10:57) [10]

> Коль, ты что-то напутал...:)
точно лоханулся. (почти сразу понял но уже от инета отключился и на работу нужно... уже доехал ;о))


 
sniknik ©   (2004-12-08 11:00) [11]

> да не придирайся, я просто описал все...
никто не придирается. проверь [6] (если долго переделывать возьми прогу какуюнибудь где можно запросы на ADO проверить. могу даже выслать.)


 
_sulent   (2004-12-08 11:05) [12]

если будет не трудно, перешли... но уже впринципе нашел выход... немного не правильный, но главное работает ;)
Спасибо а помощь и что не отказали, как это обычно бывает! :)


 
sniknik ©   (2004-12-08 11:20) [13]

ты чегото путаеш, обычно как раз помогают. (если вопрос и его хозяин адекватны ;о))

послал. конект там легко меняется (настроен на аксесовскую базу только имя на свою поменяй),
проверяй тразакцию запросом
BEGIN TRANSACTION
после твой удаляющий запрос
дальше
COMMIT TRANSACTION
и (повтор)
BEGIN TRANSACTION
следующий удаляющий запрос (на котором у тебя говориш вылет...) что ADO скажет?



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

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
14-1103683285
Думкин
2004-12-22 05:41
2005.01.09
С днем рождения! 22 декабря


3-1101907432
Yurij-7
2004-12-01 16:23
2005.01.09
защита БД


3-1102527664
Алихан
2004-12-08 20:41
2005.01.09
Поиск в базе данных


1-1103815624
СерегаМенсон
2004-12-23 18:27
2005.01.09
Помогут ли рез-файлы?


4-1100934519
Avatara
2004-11-20 10:08
2005.01.09
Запуск посторонних приложений