Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
ВнизTADOQuery + Access + Delete Найти похожие ветки
← →
GlowSolnce (2009-09-16 21:45) [0]Всем привет!
Столкнулась с проблемой удаления записей из таблицы.
Если в отборе where параметр, то удаления записи не происходит(ошибок выполнения не выдается).
var
ADOQDel:TADOQuery;
SitesID:integer;
begin
ADOQDel:=TADOQuery.Create(self);
ADOQDel.Connection:=ADOMod.ADOConnection1;
SitesID:=DBGSites.DataSource.DataSet.FieldByName("SitesID").AsInteger;
with ADOQDel.Parameters.AddParameter do
begin
Name:="SitesID";
DataType:=ftInteger;
Direction:=pdInput;
Value:=SitesID;
end;
ADOQDel.SQL.Clear;
ADOQDel.SQL.Add("delete");
ADOQDel.SQL.Add("from tSites");
ADOQDel.SQL.Add("where SitesID = :SitesID");
ADOQDel.ExecSQL;
ADOQDel.Close;
А если эту строчку
ADOQDel.SQL.Add("where SitesID = :SitesID");
заменяю на
ADOQDel.SQL.Add("where SitesID = 5");
т.е. сразу прописываю ID, то удаление замечательно проходит.
Если важно, то tSites.SitesID в аксесе определен как счетчик.
Проверку параметра перед выполнением ExecSQL производила, параметр содержит верное значение.
В чем может быть проблема?
Какое-то странное поведение.
← →
GlowSolnce (2009-09-16 21:51) [1]Даже так работает
ADOQDel.SQL.Add("where SitesID = "+InttoStr(SitesID));
Вопрос остается, почему не работает через параметр???
← →
sniknik © (2009-09-16 22:13) [2]> Какое-то странное поведение.
это у тебя странное поведение, после разбора, и примеров на те же грабли...
http://delphimaster.net/view/3-1252853537/
> В чем может быть проблема?
похоже, что в зеркале.
← →
GlowSolnce (2009-09-17 10:17) [3]Вы имеете ввиду что вместо TADOQuery нужно использовать TADOCommand?
И такое поведенеие для TADOQuery в порядке вещей?
← →
Amoeba © (2009-09-17 10:59) [4]
> GlowSolnce (17.09.09 10:17) [3]
>
> Вы имеете ввиду что вместо TADOQuery нужно использовать
> TADOCommand?
> И такое поведенеие для TADOQuery в порядке вещей?
Нет, TADOQuery здесь не при чем. Не надо пенять на зеркало.
← →
sniknik © (2009-09-17 11:04) [5]нет, если писать нормально, то и TADOQuery работает, не рекомендуют его по другому поводу, из-за его неэффективности (в основном для командных запросов) и потворствования в формировании дурных привычек у начинающих.
а вот как писать нормально, там есть.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c