Главная страница
    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.067 c
2-1213704407
tey
2008-06-17 16:06
2008.07.20
работа со строкой


2-1212575484
TUserClass
2008-06-04 14:31
2008.07.20
Проблема с тулбаром для IE ...


3-1202726641
pavel_guzhanov
2008-02-11 13:44
2008.07.20
Непонятность с null в хранимой процедуре


2-1213894982
DJ_UZer
2008-06-19 21:03
2008.07.20
Ускорение запуска программы


2-1213613675
EgorovAlex
2008-06-16 14:54
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский