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

Вниз

Удаление записи из выборки (из query)   Найти похожие ветки 

 
Fishka   (2002-12-25 11:17) [0]

В DBCRTLGrid-e отображается выборка записей (query) из Table. Как удалить по кнопке запись из query? Из Table запись можно удалить, а при удалении из query выдается сообщение, что таблица только для чтения (Query.RequestLive:=True;).
Как удалить из QUERY?


 
Lady D   (2002-12-25 11:21) [1]

TQuery + TUpdateSQL


 
Fishka   (2002-12-25 11:48) [2]

Спасибо. Пишу следующее:

Upd_Q : TUpdateSQL

Upd_Q.DataSet:=Query2;
Upd_Q.DeleteSQL.Clear;
Upd_Q.DeleteSQL.Add("delete from "aa.dbf" where pole1=5");
Upd_Q.ExecSQL(ukDelete);

Ошибка при выполнении: Update failed.
Подскажите, где ошибки?


 
mrcat   (2002-12-25 12:03) [3]

1. Связываешь TUpdateSQL с файлом базы
2. Generate SQL в TUpdateSQL
3. TQuery.UpdateObject присваиваешь TUpdateSQL

После чего: удаление, добавление, редактирование как и везде.


 
mrcat   (2002-12-25 12:04) [4]

опечатка: Связываешь "TUpdateSQL" с файлом базы читать "TQuery"


 
Fishka   (2002-12-25 12:44) [5]

mrcat ©
Спасибо. Вроде удаляется, только на экране ничего не обновляется.
Если поставить Query.AutoRefresh:=True;, то вообще ругается при выполнении, а Refresh не помогает.
Как правильно обновить на экране Query после удаления?
(Аппетит приходит во время еды - к сожалению...........)


 
mrcat   (2002-12-25 13:29) [6]

Fishka
Если все было сделано правильно - удаляется и обновляется без Refresh"а
В TQuery RequestLive = true ? Его надо выставить


 
mrcat   (2002-12-25 13:33) [7]

в false, CachedUpdate = true



 
Lady D   (2002-12-25 13:34) [8]

CachedUpdates := false;
или
CachedUpdates := true; ... Query.ApplyUpdates;


 
Fishka   (2002-12-25 14:12) [9]

mrcat ©
Query.RequestLive:=False;
Query.CachedUpdate:=true;
На форме ничего не обновляется.

Lady D ©
Query.CachedUpdates := true;
Query.ApplyUpdates;
На форме ничего не обновляется.

Что еще придумать? Где у меня ошибка?


 
mrcat   (2002-12-25 15:56) [10]

Код показывай


 
Fishka   (2002-12-25 16:11) [11]

Query2.RequestLive:=False;
Query2.CachedUpdate:=true;
Query2.UpdateObject:=Upd_Q;
Upd_Q.DataSet:=Query2;
Upd_Q.DeleteSQL.Clear;
Upd_Q.DeleteSQL.Add("delete from "aa.dbf"");
Upd_Q.DeleteSQL.Add("where pole1="+Query2.FieldByName("pole1").AsString);
Upd_Q.ExecSQL(ukDelete);
Query2.ApplyUpdates;

Больше ничего в программе нет. Что не так?


 
Lady D   (2002-12-25 16:22) [12]

Для такого случая:

Query2.SQL.Clear;
Query2.SQL.Add("delete from "aa.dbf"");
Query2.SQL.Add("where pole1="+Query2.FieldByName("pole1").AsString);
Query2.ExecSQL;


 
Fishka   (2002-12-25 16:36) [13]

Как это - Query2.FieldByName("pole1").AsString, ведь Query2 д.б. закрыто перед Clear, но тогда пропадет значение. А нужно удалить запись со значением Query2.FieldByName("pole1").AsString.
Что-то невнятно получилось.........
А в Query2 совсем другой запрос, результаты которого мы видим в DBCTRLGrid.
Так что Ваш вариант неверен.


 
Lady D   (2002-12-25 16:58) [14]

Тьфу.
Мой вариант верен, и он давно работает. А вот Вашу писанину мне некогда проверять достаточно внимательно и я ее просто копирую. Поэтому и получаются такие ляпы.
Вам нужно уже решить как будет удаляться запись: либо предварительным позиционированием на нее и Query2.delete, либо в отдельном TQuery + ExecSQL и Query2.Refresh.


 
Fishka   (2002-12-25 17:02) [15]

предварительным позиционированием на нее и Query2.delete из выборки и TQuery + ExecSQL из таблицы, из которой выборка.
Все удаляется, но на экране не обновляется.


 
petr_v_a   (2002-12-26 18:42) [16]

Update Failed - значит, RowsAffected соотв. UpdateQuery не равно единице

> Lady D © (25.12.02 16:58)
Уж если Вам не лень отвечать на вопрос, писанину надо проверять внимательно


 
ЮЮ   (2002-12-27 07:07) [17]

>Fishka (25.12.02 17:02)
предварительным позиционированием на нее и Query2.delete из выборки и TQuery + ExecSQL из таблицы, из которой выборка.
Все удаляется, но на экране не обновляется.

И не удалится, без переоткрытия. Для этого нужен компонент TUpdateSQL, а не просто TQuery c запросами обновления :-)



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

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

Наверх




Память: 0.47 MB
Время: 0.009 c
4-62947
Asteroid
2002-12-05 23:56
2003.01.20
SetWindowRgn


3-62362
Danas
2002-12-24 16:43
2003.01.20
Btrieve and Delphi


14-62821
Kair
2003-01-02 14:36
2003.01.20
WinAPI. Что это такое?


1-62535
bAgmAn
2003-01-09 17:52
2003.01.20
Вопрос


7-62886
Sergei_tlt
2002-11-06 11:52
2003.01.20
Перемещение мыши





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