![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
delete from
Рустам1 © (2008-06-16 15:03:00)при выполнении данного запроса
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM 8;');//имя table 8
ADOQuery1.ExecSQL;
выводится ошибка "текущий проводник не поддерживает возврат нескольких наборов записи в результате операции"..что я неправильно делаю?и вообще, как можно удалить все записи в table?
Правильный-Вася (2008-06-17 10:56:00) [1]
> выводится ошибка "текущий проводник не поддерживает возврат
> нескольких наборов записи в результате операции"
вряд ли ошибка приосходит на этом запросе
включи трассировку F7 и смотри
affonya (2008-06-17 10:55:00) [2]ADOQuery1.SQL.active := false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM 8;');//имя table 8
Transaction.begin;
ADOQuery1.ExecSQL;
Transaction.commit;
вроде так должно заработать.
Василий Жогарев (2008-06-17 10:35:00) [3]
> я делаю запросы типа select from 8, и ошибок не бывает..
> .
А как жеselect *from 8?
1) НЕ именуй объекты баз данных цифрами, даже если есть поддержка сие чуда.
2) Выполни тот же самый запросDELETE FROM ...не посредственно в базе.
3) Проверь еще раз код программы.
4) В принципе попробуй убрать точку с запятой, и так работает, ты же не через консоль команду закрываешь.
5) Если не поможет, попробуй организоватьDELETE FROMдругой таблицы.
Рустам1 (2008-06-16 18:59:00) [4]*точку с запятой
Рустам1 (2008-06-16 18:59:00) [5]ну... убрал запятую, ничего не изменилось!
Ega23 (2008-06-16 18:41:00) [6]
> 2. а что, ненадо использовать точку с запятой?-.- по моему
> нужно
А вот лучше без "по-моему", для этого help имееццо.
Anatoly Podgoretsky (2008-06-16 18:39:00) [7]В таком случае код правильный и ошибка на сервере.
Рустам1 (2008-06-16 18:23:00) [8]моя субд - access.
> 1. твоя СУБД позволяет так именовать объекты
я делаю запросы типаselect from 8, и ошибок не бывает...
2. а что, ненадо использовать точку с запятой?-.- по моему нужно
Anatoly Podgoretsky (2008-06-16 16:48:00) [9]Начнем с простого,
1. твоя СУБД позволяет так именовать объекты
2. твоя СУБД позволяет ставить в конце запроса точку с запятой
Ega23 (2008-06-16 16:26:00) [10]
> С поправкой
> > Ega23 © (16.06.08 15:22) [2]
>
> вот это работает без проблем:
>
> with ADOQuery1 do
> begin
> if Active then
> Close;
Эта проверка не нужна. Если посмотришь внимательно на реализацию TDataSet.Close и
procedure TDataSet.SetActive(Value: Boolean);
begin
if (csReading in ComponentState) then
begin
FStreamedActive := Value;
end
else
if Active <> Value then
begin
if Value then
begin
DoBeforeOpen;
try
OpenCursor;
finally
if State <> dsOpening then
OpenCursorComplete;
end;
end else
begin
if not (csDestroying in ComponentState) then DoBeforeClose;
SetState(dsInactive);
CloseCursor;
if not (csDestroying in ComponentState) then DoAfterClose;
end;
end;
end;
то увидишь, что оно лишнее.
Ega23 (2008-06-16 16:24:00) [11]
>
> Всмысле точка с зяпятой...
>
А что не так?
андр. (2008-06-16 16:20:00) [12]
> андр. (16.06.08 16:19) [7]
Всмысле точка с зяпятой...
андр. (2008-06-16 16:19:00) [13]Стоп. Вот это зачем ?
Add('DELETE FROM 8 ;')
Василий Жогарев (2008-06-16 16:17:00) [14]
> текущий проводник не поддерживает возврат нескольких наборов
> записи в результате операции
Мне почему-то кажется что ты все-таки делаешь неExecSQL, аOpen... Хотя могу и ошибаться... :o)
Поросенок Винни-Пух (2008-06-16 16:11:00) [15]ошибка происходит,когда я пытаюсь выполнить sql запрос
вот это да. кто бы мог подумать.
Рустам1 (2008-06-16 16:09:00) [16]ошибка происходит,когда я пытаюсь выполнить sql запрос
Василий Жогарев (2008-06-16 16:08:00) [17]
> Рустам1 (16.06.08 15:03)
СУБД какая ?
С поправкой
> Ega23 © (16.06.08 15:22) [2]
вот это работает без проблем:
with ADOQuery1 do
begin
if Active then
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM Table1';
ExecSQL;
end;
, посмотри может действительно верно сказано
> Поросенок Винни-Пух © (16.06.08 15:13) [1]
Ega23 (2008-06-16 15:22:00) [18]Попробуй добавь вначале ADOQuery1.Close;
Хотя тут конечно масса вариантов.
Поросенок Винни-Пух (2008-06-16 15:13:00) [19]что я неправильно делаю?
Даешь неправильные имена объектам БД.