Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.27;
Скачать: CL | DM;

Вниз

Очистить БД через запрос SQL   Найти похожие ветки 

 
Василич ©   (2006-08-08 04:16) [0]

Салют!

Есть проблема - не могу очистить все значения БД (MS ACCESS) через запрос SQL...
пробовал делать так:

 DM1.ADOQuery1.SQL.Strings[0]:="Delete * from table1";

Delphi говорит, что объект не может выполнить требуемую операцию, но при повторном пуске БД девственно чиста...

поможите...


 
ORMADA ©   (2006-08-08 07:11) [1]

DML операторы следует выполнять не через ADOQuery1.Open
а через ADOQuery1.ExecSql

Description

Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

ExecSQL returns an integer value reflecting the number of rows affected by the executed SQL statement.

Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to true


 
TButton ©   (2006-08-08 08:33) [2]

я чистил через TRUNCATE TABLE `имя_таблицы`
правда это в MySQL)


 
MsGuns ©   (2006-08-08 09:16) [3]

DM1.ADOQuery1.SQL.Text:="Delete from table1";
DM1.ADOQuery1.ExecSQL;

table1 должна быть закрытой.


 
Василич ©   (2006-08-08 11:53) [4]

вот листинг процедуры:


procedure TForm1.N8Click(Sender: TObject);
begin
       DM1.Datasource1.Dataset:=DM1.ADOQuery1;
       DM1.ADOQuery1.Active:=False;
       DM1.ADOQuery1.SQL.Strings[0]:="Delete * from table1";
       DM1.ADOQuery1.Active:=True;
       Form1.DBGrid1.DataSource:=DM1.DataSource1;
end;


2ARMADA:
что такое DML операторы я не знаю...
все запросы в разрабатываемой программе работают и без ADOQuery1.ExecSql, а по вышепреведённому способу...

может быть это и ламо, но все SQL запросы работают, кроме этого...


 
stone ©   (2006-08-08 11:55) [5]


>  DM1.ADOQuery1.Active:=True;

Будет ругаться потому, что после выполнения команды не возвращается recordset.
PS. и звездочку из текста запроса убери


 
Плохиш ©   (2006-08-08 12:01) [6]


> Василич ©   (08.08.06 11:53) [4]
> может быть это и ламо, но все SQL запросы работают, кроме
> этого

Документацию/справку читать не пробовали, вместо того, чтобы обижаться на правильные рекомендации?


 
ORMADA ©   (2006-08-08 12:09) [7]

2 Василич
очень рекомендую тебе всё таки узнать что такое DML(в каждой книжке по скулю есть)
вот это перести не смог ?
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to true

если после прочтения этого ты ещё не понял почему у тебя вся прога работает через Open а этот скуль нет
без обид кипу хорошую книжку по скулю
и по дельфи тож
рекомендоую по дельфм Маркко Кэнту(знающие люди подтвердят)
потрать сейчас немного денег и времени на изучение вышеописанного чтобы потом быстрее всё раврабатывать и избежать многих ошибок
удачи :)


 
Василич ©   (2006-08-09 05:36) [8]

разобрался я с DML (lol!), также разобрался с методом open и ExecSQl, благо книги всё таки есть под рукой...

большой респект MsGuns и ARMADA за столь содержательный ответ!!!

2Плохиш: а обижаться тут можно только на меня, за такие пионерские вопросы =8)))


 
ORMADA ©   (2006-08-09 07:42) [9]

блин!
Василич!
не путай тут!
ARMADA<>ORMADA!


 
Василич ©   (2006-08-09 07:59) [10]

тьфу!
сорри!
канешна ORMADA!
блин как будто вчера школу закончил...



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

Текущий архив: 2006.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.059 c
15-1154069076
Neo Trinitron
2006-07-28 10:44
2006.08.27
Смена работы


4-1146654047
Тфьу
2006-05-03 15:00
2006.08.27
Как отследить процесс перемещения компонента?


15-1154018289
ronyn
2006-07-27 20:38
2006.08.27
Date change of File s


2-1154786763
Reaktor
2006-08-05 18:06
2006.08.27
Чем можно заменить размер массива?


15-1154510916
SPeller
2006-08-02 13:28
2006.08.27
Глюк IE. Помогите, кто чем может