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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
1-1103777548
Lelik
2004-12-23 07:52
2005.01.09
Перенапрвление потоков


9-1095031112
массив
2004-09-13 03:18
2005.01.09
Что такое NovodeX physics scripting language? Ктонибудь пробовал?


11-1084877331
mdw
2004-05-18 14:48
2005.01.09
Обновились компоненты mdvXXX


14-1103294319
Nat
2004-12-17 17:38
2005.01.09
Работа для программиста Delphi.


1-1103611698
Atrion
2004-12-21 09:48
2005.01.09
Окантовка в ComboBox





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