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

Вниз

Проблема с удалением строк в базе данных   Найти похожие ветки 

 
Святослав ©   (2006-01-11 01:06) [0]

Программно удаляю строки из БД
Query1:=TQuery.Create(nil);
Query1.DatabaseName:=Path;
Query1.SQL.Clear;
Query1.SQL.Add("delete from info where pole=znachenie");
Query1.ExecSQL;
Query1.ApplyUpdates;
Query1.Destroy;
Выскакивает ошибка «Dataset not in edit or insert», подскажите где искать и как с ней бороться???
Если сделать так
Query1:=TQuery.Create(nil);
Query1.DatabaseName:=Path;
Query1.SQL.Clear;
Query1.SQL.Add("delete from info where pole=znachenie");
Query1.ExecSQL;
//Query1.ApplyUpdates;
Query1.Destroy;
Все работает, но физически строки из таблицы не удаляются, сколько база занимала столько и занимает


 
sniknik ©   (2006-01-11 08:17) [1]

ApplyUpdates это вообще "не из той оперы", а размер... ищи в форуме про упаковку таблиц


 
Johnmen ©   (2006-01-11 08:54) [2]

кстати, Clear тоже не из этой...


 
Johnmen ©   (2006-01-11 08:57) [3]

кстати-2, Destroy тоже не из этой...


 
Desdechado ©   (2006-01-11 13:13) [4]

записи удаляются, поскольку тебе они недоступны
а проблемы физического хранения - не твоя забота, а движка БД


 
Anatoly Podgoretsky ©   (2006-01-11 14:05) [5]

Кстати и возможные утечки тоже не из этой.


 
Johnmen ©   (2006-01-11 14:18) [6]

>Anatoly Podgoretsky ©   (11.01.06 14:05) [5]

Это мне?


 
Anatoly Podgoretsky ©   (2006-01-11 14:59) [7]

Не тебе, а в общий поток.
А резюме стандартное - переписать все нафиг.


 
evvcom ©   (2006-01-11 16:21) [8]

Кстати-n (какое уж там по счету), вероятнее всего вообще ничего не удаляется.
Резюме - см. Anatoly Podgoretsky ©   (11.01.06 14:59) [7]


 
0bsid ©   (2006-01-11 17:51) [9]

ExecSQL и Free
размер базы запросто может и не меняться, но запись удалится


 
Святослав ©   (2006-01-12 12:35) [10]

Все дело в транзакциях, чтоб изменения вступили в силу SQL – запрос надо подтвердить, что-то вроде COMMIT WORK! Но где и как им пользоваться не знаю! если кто знает как это сделать из DELPHI под BDE подскажите!!!
Query1.ApplyUpdates по идей должен завершить транзакцию, но выскакивает матюк


 
Desdechado ©   (2006-01-12 12:41) [11]

если ты явно не стартовал транзакцию, то и подтверждать ее явно не надо
если стартовал, то подтверждай
если внимательно почитать справку, то ApplyUpdates просто передает изменения в клиентском датасете на сервер, а у тебя никакого клиентского датасета нет, вот и матюк


 
Johnmen ©   (2006-01-12 12:41) [12]

Правильно не знаешь. Транзакии к Парадоксу отношения не имеют.
Здесь ещё читани
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988623315&n=14


 
Святослав ©   (2006-01-12 14:19) [13]


> Desdechado ©

> если внимательно почитать справку, то ApplyUpdates просто
> передает изменения в клиентском датасете на сервер, а у
> тебя никакого клиентского датасета нет, вот и матюк

Спасибо, помогло понять!!!

> Johnmen ©  


Еще вопрос:
Можно ли послать SQL-запрос который гарантировал бы изменения и на физическом уровне или за это отвечает исключительно СУБД?
База была на 500 000 позиций, удалил до 10 000, она как занимала 100м так и занимает, теперь если добавлю еще 500 000 то она начнет плодиться, рано или поздно сожрет всю память!
Что делать?


 
Reindeer Moss Eater ©   (2006-01-12 14:44) [14]

Можно ли послать SQL-запрос который гарантировал бы изменения

Если бы таковой был, то его можно было бы послать.


 
evvcom ©   (2006-01-12 15:05) [15]


> Можно ли послать SQL-запрос который гарантировал бы изменения
> и на физическом уровне или за это отвечает исключительно
> СУБД?

За это отвечает исключительно СУБД! В твоем случае изменения происходят на физическом уровне. Разве после удаления записей ты их продолжаешь видеть? А в качестве СУБД выступает движок BDE.
А что касаемо размера, так это нормально. Посмотри в любом инструменте, Database Desktop например, там есть поле с галочкой Pack Table. Аналогично в BDE есть функция DbiPackTable.


 
Святослав ©   (2006-01-12 18:51) [16]

Спасибо всем!
Буду работать дальше...



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

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

Наверх





Память: 0.48 MB
Время: 0.02 c
11-1120902582
SergeyV
2005-07-09 13:49
2006.03.05
Jpeg в KOL


1-1138950001
Комбинатор
2006-02-03 10:00
2006.03.05
Ошибка памяти в Win98


2-1139992967
MIXER
2006-02-15 11:42
2006.03.05
печать формы


15-1139392403
Kerk
2006-02-08 12:53
2006.03.05
Статистика: десятка языков Интернета


2-1140012790
Id
2006-02-15 17:13
2006.03.05
comboBox1.Style:=csDropDownList





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