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

Вниз

delete from   Найти похожие ветки 

 
Рустам1   (2008-06-16 15:03) [0]

при выполнении данного запроса

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("DELETE FROM 8;");//имя table 8
ADOQuery1.ExecSQL;

выводится ошибка "текущий проводник не поддерживает возврат нескольких наборов записи в результате операции"..что я неправильно делаю?и вообще, как можно удалить все записи в table?


 
Поросенок Винни-Пух ©   (2008-06-16 15:13) [1]

что я неправильно делаю?

Даешь неправильные имена объектам БД.


 
Ega23 ©   (2008-06-16 15:22) [2]

Попробуй добавь вначале  ADOQuery1.Close;
Хотя тут конечно масса вариантов.


 
Василий Жогарев ©   (2008-06-16 16:08) [3]


> Рустам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]


 
Рустам1   (2008-06-16 16:09) [4]

ошибка происходит,когда я пытаюсь выполнить sql запрос


 
Поросенок Винни-Пух ©   (2008-06-16 16:11) [5]

ошибка происходит,когда я пытаюсь выполнить sql запрос

вот это да. кто бы мог подумать.


 
Василий Жогарев ©   (2008-06-16 16:17) [6]


> текущий проводник не поддерживает возврат нескольких наборов
> записи в результате операции

Мне почему-то кажется что ты все-таки делаешь не ExecSQL, а Open... Хотя могу и ошибаться... :o)


 
андр.   (2008-06-16 16:19) [7]

Стоп. Вот это зачем ?

Add("DELETE FROM 8;")


 
андр.   (2008-06-16 16:20) [8]


> андр.   (16.06.08 16:19) [7]

Всмысле точка с зяпятой...


 
Ega23 ©   (2008-06-16 16:24) [9]


>
> Всмысле точка с зяпятой...
>


А что не так?


 
Ega23 ©   (2008-06-16 16:26) [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;


то увидишь, что оно лишнее.


 
Anatoly Podgoretsky ©   (2008-06-16 16:48) [11]

Начнем с простого,

1. твоя СУБД позволяет так именовать объекты
2. твоя СУБД позволяет ставить в конце запроса точку с запятой


 
Рустам1   (2008-06-16 18:23) [12]

моя субд - access.

> 1. твоя СУБД позволяет так именовать объекты

я делаю запросы типа select from 8, и ошибок не бывает...
2. а что, ненадо использовать точку с запятой?-.- по моему нужно


 
Anatoly Podgoretsky ©   (2008-06-16 18:39) [13]

В таком случае код правильный и ошибка на сервере.


 
Ega23 ©   (2008-06-16 18:41) [14]


> 2. а что, ненадо использовать точку с запятой?-.- по моему
> нужно


А вот лучше без "по-моему", для этого help имееццо.


 
Рустам1   (2008-06-16 18:59) [15]

ну... убрал запятую, ничего не изменилось!


 
Рустам1   (2008-06-16 18:59) [16]

*точку с запятой


 
Василий Жогарев ©   (2008-06-17 10:35) [17]


> я делаю запросы типа select from 8, и ошибок не бывает..
> .


А как же select * from 8 ?

1) НЕ именуй объекты баз данных цифрами, даже если есть поддержка сие чуда.
2) Выполни тот же самый запрос DELETE FROM ... не посредственно в базе.
3) Проверь еще раз код программы.
4) В принципе попробуй убрать точку с запятой, и так работает, ты же не через консоль команду закрываешь.
5) Если не поможет, попробуй организовать DELETE  FROM другой таблицы.


 
affonya   (2008-06-17 10:55) [18]

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:56) [19]


> выводится ошибка "текущий проводник не поддерживает возврат
> нескольких наборов записи в результате операции"

вряд ли ошибка приосходит на этом запросе
включи трассировку F7 и смотри



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

Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.046 c
2-1213696082
checkmate-maker
2008-06-17 13:48
2008.07.20
Мерцание tImage


1-1195408460
ice-hammer
2007-11-18 20:54
2008.07.20
Как перетащить круг в Canvas е


2-1213613675
EgorovAlex
2008-06-16 14:54
2008.07.20
Запись в файл и чтение из файла записи: есть запись:


15-1212413751
Alkid
2008-06-02 17:35
2008.07.20
Хороший киберпанк.


4-1193078322
Wiedzmin
2007-10-22 22:38
2008.07.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский