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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 07:14   #1
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию DAC for MySQL, переменная в запросе(очень-очень нужен совет, сроки горят)

Пишу через DAC, не могу послать динамический запрос
Так работает:
Код:
mySQLUpdateSQL2.DeleteSQL.Add('delete from Articles where id=14');
mySQLUpdateSQL2.Apply(ukDelete);
Так - нет:
Код:
var xx:integer=14; // глобальная
mySQLUpdateSQL2.DeleteSQL.Add('delete from Articles where id=:xx');
mySQLUpdateSQL2.Apply(ukDelete);
id типа tinyint беззнаковое ненулевое, первичный ключ
WarHamster вне форума Ответить с цитированием
Старый 01.06.2012, 08:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
var xx:integer=14; // глобальная
Это описание к запросу не имеет никакого отношения.
Если пишешь с параметрами посмотри есть ли у mySQLUpdateSQL2 возможность написать такое:
Код:
mySQLUpdateSQL2.ParamByName('xx').Value:=14;
А те переменные, которые описаны в программе никак не повлияют на запросы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.06.2012, 08:40   #3
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если пишешь с параметрами посмотри есть ли у mySQLUpdateSQL2 возможность написать такое:
Код:
mySQLUpdateSQL2.ParamByName('xx').Value:=14;
Да, действительно, есть такое, в компоненте mySQLQuery. Но как все-таки редактировать таблицу прямым запросом? Например, из DelphiWorld:
Цитата:
Статический SQL-запрос устанавливается во время проектирования и не содержит никаких параметров или переменных. Например, следующая строка является статическим SQL-запросом:

SELECT * FROM CUSTOMER WHERE CUST_NO = 1234

Динамический SQL-запрос, или, как его еще называют, параметрический запрос, включает в себя параметры для колонок или имени таблицы. Например, следующая строка является динамическим SQL-запросом:

SELECT * FROM CUSTOMER WHERE CUST_NO = :Number

Переменная Number, указанная после двоеточия - параметр, который вы назначаете во время выполнения приложения. Во время выполнения запроса параметр может изменяться.
Как я понял, параметр Number это и есть переменная..
WarHamster вне форума Ответить с цитированием
Старый 01.06.2012, 19:34   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
параметр Number это и есть переменная..
Это переменная для СУБД, а не для твоей программы.
То что ты описал в программе в секции var остается в рамках программы.
А вот то что описано в запросе (:Number) посылается в пакете провайдеру:
1) Сам текст запроса как ты его описал
2) список параметров-переменных в запросе
3) список их значений.
Но эти параметры-переменные не принадлежат переменным твоей программе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2012, 08:21   #5
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это переменная для СУБД, а не для твоей программы.
Вот блин!! Я совсем забыл про SQL-переменные... Бился головой об стенку, а стенки-то и нету... Выходит, значения, полученные из программы, никак в запрос не включить?
WarHamster вне форума Ответить с цитированием
Старый 02.06.2012, 11:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Выходит, значения, полученные из программы, никак в запрос не включить?
Ты меня хорошо читаешь? Протри глазки дустом, и обрати внимание на пост №2 и на то о чем я там писал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужен ваш совет Cherryff Свободное общение 47 05.06.2010 17:32
Очень нужен совет по Delphi 7.0 Димкоff Помощь студентам 5 07.01.2010 13:43
Очень нужен совет програмиста katia0017 SQL, базы данных 2 28.12.2009 19:04