![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
О параметрах , о них, противных... [D6, Paradox, Access]
Malamba © (2003-09-04 10:21:00)
Помогите, кто сколько может...
Тут кто-кто когда-то говорил, что правильно использовать параметры вместо набивки строки String в запросе SQL =- попробовал.
"Оно может быть и умно, но больно непонятно..."
Вылезает столько разных проблем:
Есть запрос, скажем
SELECT :pName FROM Base WHERE :pName1 = :pName1Value ORDER BY :pOrder;
Смысл ясен? В нем параметры.
Если вместо параметров выполняю
SELECT NameField FROM Base WHERE NameField = :pName1Value ORDER BY NameField;
- то есть указываю настоящие значения полей, то все выполняется.
КАк только ставлю параметр после ORDER BY или после SELECT - эта мерзость выдает к-во записей - 0.
Свойста параметров выставлены корректно - String, String ( ну и на всякий случай тип параметра - Input).
Использую BDE и Paradox.
А может в консерватории что-то поправить?
Sergey13 (2003-09-04 11:38:00) [1]
2Malamba (04.09.03 10:42) [4]
>А у Архангельского
Он не то чтобы не прав. 8-) Это зависит от компонентов доступа. Например в DOA для Оракла такое можно делать. Про имя таблицы не пробовал но поля можно и переменными задавать.
Nikolay M. (2003-09-04 11:14:00) [2]
> А что такое, не к ночи будь сказано "макро-подстановки
> в RxQuery".
В библиотеке RxLib есть компонент TRxQuery, поддерживающий макросы в том виде, как ты это написал в первом посте.
Т.е. в свойстве SQL можно написать:
SELECT %FIELD_NAMES% FROM %TABLE_NAME% ORDER BY %ORDER_FIELD%
после чего подставлять вместо %FIELD_NAMES%, %TABLE_NAME%, %ORDER_FIELD% любые строки. Запрос по шаблону, так сказать...
Malamba (2003-09-04 10:53:00) [3]
Так и быть, уговорили.
А что такое, не к ночи будь сказано "макро-подстановки в RxQuery".
В Helpe ничего подобного нетути. Может есть ссылка?
Zacho (2003-09-04 10:49:00) [4]
> Malamba (04.09.03 10:42) [4]
> НО что же тогда делатьь- тогда на каждый чих наберется
> столько Query !!!
А это уж сам смотри, что тебе лучше - куча Query и немного простого кода, или пара Query и куча кода :)
Malamba (2003-09-04 10:42:00) [5]
А у Архангельского (Программирование в Delphi 6) написано, что параметрами могут быть названия таблиц, полей и их значения.
Хотя сам, противный, параметры вместо названий полй в своих примерах не использвовал.
НО что же тогда делатьь- тогда на каждый чих наберется столько Query !!!
Я например, раньше просто набивалд строку String в SQL сам программно. И обходился двумя Query.
Nikolay M. (2003-09-04 10:26:00) [6]
> А может в консерватории что-то поправить?
Точно!
Параметры pName и рName1 не имеют права на существование. Если очень хочется строить запрос по шаблону, используй макро-подстановки в RxQuery.
Smashich (2003-09-04 10:25:00) [7]
в консерватории не надо править. слишком буквально ты все воспринимаешь. поля(их названия) не могут быть параметрами.
stone (2003-09-04 10:23:00) [8]
В данном случае в качестве параметра можно указать только = :pName1Value