![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблем с параметрами
thvfrjd © (2006-03-30 11:05:00)Имеется хранимая процедура на SQL сервере с параметром - @p, и имеется ADOQuery в качестве текста запроса которого указано имя этой прцедуры. Добавляю в конструкторе Delphi параметр @p присваиваю ему значение. Но AdoQuery не хочет открываться пишет: 'Procedure "procname" expects parameter '@p', which was not supplied' Что может быть не так?
Nikolay M. (2006-03-30 12:08:00) [1]
> по логике должно было работать
Ты пользуешься неправильной логикой.
Ega23 (2006-03-30 12:06:00) [2]
> по логике должно было работать
В тексте запроса параметр был указан? Не был, судя по [5]. А откуда сервер про него тогда узнает?
sniknik (2006-03-30 12:06:00) [3]> я ж его добавлял в конструкторе и присваивал значение пред открытием
да хоть десять в конструкторе, без определения его в запросе он ничего не значит.
все хорошо в свое время на своем месте...
> по логике должно было работать
поставь в багажник канистру с бензином... попробуй поехать при пустом баке... а по логике должно работать, бензин же в машину добавили? добавили!
thvfrjd (2006-03-30 12:03:00) [4]
> Параметра нет и взяться ему неоткуда.
в тексте процедуры парматр указан? - указан
в конструкторе параметр это добавлен? - добавлен
значение ему в конструкторе прсвоено? - присвоено
по логике должно было работать
Nikolay M. (2006-03-30 12:00:00) [5]
> Почему с потолка
потому что
> AdoQuery.SQL.Text:='procname'
Параметра нет и взяться ему неоткуда.
thvfrjd (2006-03-30 11:59:00) [6]
> Ну как минимум AdoQuery.SQL.Text:='exec procname @p=:Param1'
все работает только двоеточие не надо
спасиюл
thvfrjd (2006-03-30 11:50:00) [7]
> Круто, дайте две...
> А параметр с потолка должен упасть? Сделай как в [4].
> Ну, или оставь как есть - неработающим :)
Почему с потолка я ж его добавлял в конструкторе и присваивал значение пред открытием
Nikolay M. (2006-03-30 11:47:00) [8]
> thvfrjd (30.03.06 11:29) [5]
> AdoQuery.SQL.Text:='procname'
Круто, дайте две...
А параметр с потолка должен упасть? Сделай как в [4].
Ну, или оставь как есть - неработающим :)
Ega23 (2006-03-30 11:33:00) [9]
> AdoQuery.SQL.Text:='procname'
Ну как минимум AdoQuery.SQL.Text:='exec procname @p=:Param1'
thvfrjd (2006-03-30 11:31:00) [10]
> Что мешает в TADODataSet выставить CommandType := cmdStoredProc,
> а в CommandText указать свою ХП? Параметры создатутся сами.
>
> А AdoQuery - это от лукавого.
можно просто я раньше не подумал и тут пределывать неохота
Nikolay M. (2006-03-30 11:29:00) [11]Что мешает в TADODataSet выставить CommandType := cmdStoredProc, а в CommandText указать свою ХП? Параметры создатутся сами.
А AdoQuery - это от лукавого.
thvfrjd (2006-03-30 11:29:00) [12]AdoQuery.SQL.Text:='procname'
paramcheck:=tue
Ega23 (2006-03-30 11:27:00) [13]
> А значение парметра просто в конструкторе добавляю парметр
> и присваиваю ему значение - 1 например
какой тип параметра, какие опции.
Как выглядит ADOQuery.SQL?
Чему равно ADOQuery.ParamCheck
thvfrjd (2006-03-30 11:11:00) [14]вот текст процедуры:
CREATE PROCEDURE [dbo].[procname]
@p smallint
AS
select id, n1, n2, n3, n4, dr, klient,predmet from dog where n2=@p
GO
А значение парметра просто в конструкторе добавляю парметр и присваиваю ему значение - 1 например
Ega23 (2006-03-30 11:07:00) [15]Текст запроса, а также присвоения значения параметру - в студию!