Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизОчистить БД через запрос 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.084 c