![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу расставить кавычки в 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';
Последнее - самое правильное