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

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

Не могу расставить кавычки в delete [D7, Access]


Fer ©   (2006-05-26 13:38:00) 

Здравствуйте.
Подскажите плиз один момент.
Есть база в Асесе 2000

аппараты :

аппарат | объём
R 1-1 | 1
R 1-2 | 2
1      | 3

Работаю в delphi 7 - через BDE SQL запрос (Query)

with Query1 do
begin
   Active:=False;
   SQL.Clear;
   SQL.Add('delete from аппараты where объём = 3);
   ExecSQL;
end;



честно удаляет аппарат 1
Но все мои попытки заставить удалять вот так:
SQL.Add('delete from аппараты where аппарат = 1); - слишком мало параметров требуется 1.'.
SQL.Add('delete from аппараты where аппарат = "R 1-1"'); - слишком мало параметров требуется 2.'.
а на вариант
SQL.Add('delete from аппараты where аппарат = " 'R 1-1' " '); - не компилирует = [Error] Unit1.pas(82): ')' expected but identifier 'R' found
Чувствую что дело в кавычках... а поставить даже методом перебора не могу!
Столбец аппарат текстовый
подскажите кто знает...
Спасибо


Fer   (2006-06-05 11:05:00) [1]

Пасиб огромный! Тут так быстро и точно отвечают. Тьфу тьфу тьфу!
Пасиб!


ЮЮ   (2006-06-05 10:59:00) [2]

не SQL.
а
 Query1.
если это TADOQuery.
Есри же это TQuery, то просто
 Query1.ParamByName


ANB   (2006-06-05 10:56:00) [3]

SQL убери.
Parameters.ParamByName('p').Value := '1';


Fer   (2006-06-05 10:37:00) [4]

Так... уж не хотелось осваивать новые технлогии, но тем не менее..
Длинна запроса вынуждает прибегнуть к третьему способу - использованию параметров.
Конкретно на это компилятор ругается.. ((((
SQL.Parameters.ParamByName('p').Value := '1';
По точке после SQL не показывает в списке слово Parameters ((((
Написанное самим - не компилит
Строчкой кода никто не поделится?


MsGuns   (2006-05-26 14:37:00) [5]

>Fer ©   (26.05.06 14:23) [3]
>вариант 3 - верный но не понятен... :pa а затем 'p' но в будующем попробую заюзать

Очепятка просто. Использвание параметров - самый правильный способ, т.к. позволяет не заботиться о корректности перевода "паскальных" форматов данных в "серверные", у которых может быть разная локализация.


Fer   (2006-05-26 14:23:00) [6]

Ого..
вариант 1 - это  ' ' ' ' или " " в смысле двойные или одинарные или и те и эти..
вариант 2 - работает!!! и мне понятен
вариант 3 - верный но не понятен... :pa а затем 'p' но в будующем попробую заюзать
Пасиб огромный за решение - перерыл все форумы и исходники!


Fer   (2006-05-26 14:20:00) [7]

SQL.Add('delete from аппараты where наименование = '+QuotedStr('R 1-1'));

Решение любезно подсказано на форуме www.sql.ru
Всем спасибо


MsGuns   (2006-05-26 14:17:00) [8]

1) SQL.Add('delete from аппараты where аппарат = '''1''');

2) SQL.Add('delete from аппараты where аппарат = '+QutedStr('1'));

3) SQL.Add('delete from аппараты where аппарат = :pa');
   SQL.Parameters.ParamByName('p').Value := '1';

Последнее - самое правильное


Наверх

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