Главная страница
    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.034 c
1-62553
Керик
2002-12-31 07:59
2003.01.20
Сохранение и загрузка файлов


3-62359
Kurt
2002-12-11 23:13
2003.01.20
ЛЮДИ! Помогите плиз! на моем компе все без проблем работает, а на


3-62345
Sergy
2002-12-27 11:05
2003.01.20
DbGrid и MultiSelect


14-62733
MAloi
2002-12-30 11:22
2003.01.20
Delphi 6 and Delphi 7 ?


3-62368
D-NICKNAME
2002-12-22 11:07
2003.01.20
SQL-запрос.





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