Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление из таблицы, опять [D4, D5, D6, Paradox]


Demon ltd ©   (2002-03-11 22:39:00) 

Когда-то я задавал вопрос:
Для удаления записи из парадоксовской таблицы мне
посоветовали использовать в строчке
form1.Query1.SQL.Add("delete from "clients"");
form1.Query1.SQL.add("where (tabnomer="1234")");
строчку Query1.ExecSQL;
Но проблема в том, что куда вставить эту строчку.
Вместо SQL.Add или ещё куда-нибудь. Если вместо, то выдаётся
ошибка, но в чём проблема.
Подскажите.
Мне подсказали поместить эту строчку Query1.ExecSQL после
form1.Query1.SQL.add("where (tabnomer="1234")");
но всё равно выдаётся та жа ощибка.


Фэ   (2002-03-12 00:37:00) [1]

Дело-то в парсере SQL а не сервере.
Но точно насчет Pdx уже не скажу, не помню.
В DBISAM все катается (тоже файл-сервер)


Anatoly Podgoretsky   (2002-03-12 00:00:00) [2]

Фэ © (11.03.02 23:49)
Да но Парадокс это не SQL сервер, поэтому это правило не применимо к нему.


sniknik   (2002-03-11 23:56:00) [3]

Про дурной тон можеш не расказывать сам знаю. Но мне чаше приходится работать с чужими (и устаревшими) базами а раньше похоже это было правилом хорошего тона. Пример кассовая программа Супермаг Укм - ни одной таблици без подобного поля! (чуть преувеличил;)


Фэ   (2002-03-11 23:49:00) [4]

Это признак дурного тона - использование ключевых слов SQL в полях, но согласен - такой прием прокатывает.


sniknik   (2002-03-11 23:42:00) [5]

Не только допускается но в некоторых случаях без этого не обойдешся. К примеру попробуй составить запрос с упоминанием поля с именем Date. А с кавычками вокруг базы и поля можно.


Фэ   (2002-03-11 23:27:00) [6]

В некоторых базах и случаях (таблица как файл с расширением) допускается заключение имени таблицы в кавычки


Фэ   (2002-03-11 23:14:00) [7]

С помощью последовательных
SQL.Clear;
SQJ.Add("...");
..
Или сразу
SQL.Clear;
SQL.Text := "..";
Вы формируете текст SQL-запроса.
После чего методом
qu.ExecSQL;
его выполняете;
Но за не наличие алиаса, не подключения к базе, некорректности текста запроса за Вас никто отвечать не будет.


Malder   (2002-03-11 23:14:00) [8]

Млять. Тупость какая то... или я не понял чего-то...
Ты по ходу не знаешь ObjectPascal раз задаешь такие вопросы.

1) Не знаю будет работать ли пример твой, но лучше так:

form1.query1.add("DELETE from Clients where tabnomer="1234"");{не надо имя таблицы Clients в кавычки заносить}
form1.query1.execSQL;{при вызове этого метода будет выполняться SQL запрос}

2) Вообще, для локальных баз (типа Парадокса не используют обычно SQL. Если тебе нужно удалить текущую запись, то:

query1.delete;

Собственно говоря, и компонент query не надо использовать, можно обойтись Table.


Наверх

Титульная страница Поиск, карта сайта Написать письмо