![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование параметров в ADOQuery [D7, MSSQL]
Goida © (2004-05-07 10:54:00)У меня не получилось работать с параметрами :( Я написал запрос (например):
select Фамилия, Имя
from Клиент
where Фамилия = @Фамилия
В ADOQuery я создал в десижн-тайм такой же параметр и задал ему тип string. Когда же я попытался присвоить параметру значение, появилась ошибка, что параметра нет. Почему? Может это из-за того, что я присваиваю строку с запросом во время выполнения?
Goida (2004-05-07 11:44:00) [1]Все ясно. Кажется в этих двух тчк и была ошибка.
Курдль (2004-05-07 11:36:00) [2]Прошу прощения ADOQuery оказался тупее, чем я даже думал :(
Тогда один путь - не ошибаться в названии параметра.
Если в запросе написано:FAMILIAто и имя параметра надо писатьFAMILIA. Именно так - в запросе с двоеточием, в имени - параметра - без!
sniknik (2004-05-07 11:34:00) [3]еше вариант поиск по несуществующему имени парамбайнаме(':Familia') - ошибка!
Курдль (2004-05-07 11:32:00) [4]
> Я и с двоеточием писал. Результат такой же получал.
Этого не может быть. В дизайн-тайме умные компоненты (не знаю про ADOQuery - не пользовал) сканируют текст SQL-запроса и ищут параметры как раз по признаку "начинается с двоеточия". Если параметр найден - он попадает в параметр лист и никуда оттуда не девается. А вот если были загадочные @ - Вы не сможете ничему установить тип, т.к. лист будет пуст.
sniknik (2004-05-07 11:32:00) [5]значит либо у тебя paramcheck фалсе либо не в то время присваиваеш.
Goida (2004-05-07 11:27:00) [6]Я и с двоеточием писал. Результат такой же получал. Может мне динамически создавать параметры?
Мунька (2004-05-07 11:25:00) [7]>Ты хочешь сказать, что нужно англицкий использовать?
В общем использование английского языка в качестве имен полей необязательно, но лучше все-таки его использовать, а не русский, проблем меньше, не нужно всяких там [], да и с кодировками меньше шансов залета
А уж в именах параметров - точно лучше использовать английский
Курдль (2004-05-07 11:23:00) [8]Он хочет сказать, что нужно двоеточие использовать :)
ЗЫ: Можно русское :)
Goida (2004-05-07 11:14:00) [9]
> Johnmen
Ты хочешь сказать, что нужно англицкий использовать?
Johnmen (2004-05-07 10:58:00) [10]select [Фамилия], [Имя]
from [Клиент]
where [Фамилия] = :Familia