Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2012, 22:58   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Переменная в запросе

Код:
ABSQuery1.SQL.Text := 'update BAZA set NAME = "ВАСЯ" ';
Подскажите как мне вместо ВАСЯ текстовую переменную вставить ,без ковычек сразу выдает ошибку.
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.09.2012, 23:10   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
ABSQuery1.SQL.Text := 'update BAZA set NAME = :p_name ';
ABSQuery1.ParamByName('p_name').AsString:='ВАСЯ';
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 11.09.2012, 23:20   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
Код:
ABSQuery1.SQL.Text := 'update BAZA set NAME = :p_name ';
ABSQuery1.ParamByName('p_name').AsString:='ВАСЯ';
Спасибо все получилось,интересно а почему присваиваем переменной уже
после запроса? Это я так,мысли в слух, просто интересно.
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.09.2012, 23:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Когда я писал свой пост, я ещё не видел пример (с) Yurk@ с параметрическим запросом.
Это правильное и надежное решение!

мой пост прошу расценивать просто как дополнительный материал по данному вопросу!


---------------------------------------------------------------
во-первых, это элементарно можно записать так:
Код:
var sName : string;
....
  sName := 'ВАСЯ';
  ABSQuery1.SQL.Text := 'update BAZA set NAME = "'+sName+'" ';
или (лучше!)
так:
Код:
  sName := 'ВАСЯ';
  ABSQuery1.SQL.Text := 'update BAZA set NAME = '+QuotedStr(sName);
во-вторых, часто удобнее (и надежнее) в подобных случаях использовать параметрические запросы (это когда в запросе используется не конкретный текст - а параметр, а значение параметра задаётся в коде. примеры легко найдете везде, в т.ч. на данном форуме.

в-третьих. ВАЖНО!
вы понимаете, что Ваш запрос ВСЕМ записям в таблице BAZA присвоит полю NAME значение ВАСЯ ?! В таблице будут только ВАСИ!


ps. по имени таблицы BAZA мне кажется, что Вы путаете понятия БД (база данных) и таблица....

Последний раз редактировалось Serge_Bliznykov; 11.09.2012 в 23:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2012, 23:25   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Сообщение от Михаил Юрьевич Посмотреть сообщение
... интересно а почему присваиваем переменной уже после запроса? ...
а ответ как раз тут
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
... во-вторых, часто удобнее (и надежнее) в подобных случаях использовать параметрические запросы (это когда в запросе используется не конкретный текст - а параметр, а значение параметра задаётся в коде.
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 11.09.2012, 23:29   #6
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Код:
в-третьих. ВАЖНО!
вы понимаете, что Ваш запрос ВСЕМ записям в таблице BAZA присвоит полю NAME значение ВАСЯ ?! В таблице будут только ВАСИ!
Я уже догадался, спасибо за поучительный рассказ , я интересуюсь только для самообучения , иногда в книгах не совсем понятно о чем пишут.
Вот узнал новое слово "параметрические запросы"
За частые поиски был забанен во всех известных
поисковых системах!

Последний раз редактировалось Михаил Юрьевич; 11.09.2012 в 23:32.
Михаил Юрьевич вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переменная в sql (ms2008)запросе Snake22 SQL, базы данных 3 15.06.2012 12:53
DAC for MySQL, переменная в запросе(очень-очень нужен совет, сроки горят) WarHamster БД в Delphi 5 02.06.2012 11:35
переменная vefer Microsoft Office Word 5 14.11.2011 20:11
Переменная в C# bead C# (си шарп) 8 01.05.2011 12:32
Переменная в запросе SQL varyat Microsoft Office Access 4 16.03.2011 19:04