powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc
9 сообщений из 9, страница 1 из 1
TADOStoredProc
    #32082734
Alkaloid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вечер добрый.

Вопрос относительно технологии ADO TStoredProc->SQL Server2000
Помогите,не могу вывести результат своей хранимой на сервере:

Create Procedure FindAvtoModel
@marka varchar(40)=Null,@model varchar(40)=Null,@color varchar(30)=Null,@price varchar(30)=Null
AS
IF (@marka='All')AND(@model='All')AND(@color='All')AND(@price='All')
begin
Select* From Avto
return
end
else
Declare
@W varchar(1000)
SET @W='1=1'
IF (@marka IS Not Null)
SET @W=@W+' AND a.Marka='''+@marka+''''
IF (@model IS Not Null)
SET @W=@W+' AND a.Model='''+@model+''''
IF (@color IS Not Null)
SET @W=@W+' AND ac.Color='''+@color+''''
Declare
@p varchar(20)
SET @p=0
IF (@price IS Not Null)
begin
Select @p=
Case @price
WHEN 'Up to 10.000$'THEN '<=10000'
WHEN 'Up to 15.000$'THEN '<=15000'
WHEN 'Up to 20.000$'THEN '<=20000'
WHEN 'Up to 25.000$'THEN '<=25000'
WHEN 'Up to 30.000$'THEN '<=30000'
WHEN 'Up to 50.000$'THEN '<=50000'
WHEN 'Up to 70.000$'THEN '<=70000'
WHEN 'Up to 100.000$'THEN '<=100000'
WHEN 'It is from above 100000$'THEN '>100000'
end
SET @W=@W+' AND a.Price'+@p+''
end

EXEC('SELECT a.*,ac.Color INTO ##T
FROM Avto a
INNER JOIN AvtoC ac
ON a.AvtoID=ac.AvtoID
WHERE '+@W)
SELECT * FROM ##T
Drop Table ##T

Код в приложении:
procedure TForm1.Button7Click(Sender: TObject);
begin
with MD do
begin
StoredProc.Active:=false;
StoredProc.ProcedureName:='FindAvtoModel';
StoredProc.Prepared;
StoredProc.Parameters.ParamByName('@marka').value:=ComboBox10.Text;
StoredProc.Parameters.ParamByName('@model').value:=ComboBox11.Text;
StoredProc.Parameters.ParamByName('@color').value:=ComboBox15.Text;
StoredProc.Parameters.ParamByName('@price').value:=ComboBox13.Text;
StoredProc.ExecProc;
end;

end;

Delphi выдает сообщение, что не находит переменную.Что посоветуете новичку.
...
Рейтинг: 0 / 0
TADOStoredProc
    #32082795
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После StoredProc.ExecProc; напиши:

storedproc.active:=false;
storedproc.active:=true;
...
Рейтинг: 0 / 0
TADOStoredProc
    #32082934
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тут вообще StoredProc.ExecProc ? Надо бы StoredProc.Open

И какую переменную не находит?
...
Рейтинг: 0 / 0
TADOStoredProc
    #32085536
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методы ExecProc и Active := True - одно и то же
...
Рейтинг: 0 / 0
TADOStoredProc
    #32115118
AAZi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Use next:

Создай TADOQUERY
типа Select * from YOUR_STOREDPROC_NAME
Сам компонент ИМхо не нужен
...
Рейтинг: 0 / 0
TADOStoredProc
    #32115125
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методы ExecProc и Active := True - одно и то же

Ага, как же
только первый исполняет процедуру и все, а второй ее исполняет и открывает как датасет.
...
Рейтинг: 0 / 0
TADOStoredProc
    #32115128
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AAZi

Ты если сам не умеешь, то других не сбивай с пути истинного
...
Рейтинг: 0 / 0
TADOStoredProc
    #32115139
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AAZi

А я думал, что здесь я главный извращенец.
...
Рейтинг: 0 / 0
TADOStoredProc
    #32115255
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Delphi выдает сообщение, что не находит переменную.Что посоветуете новичку

Мож он про параметры процедуры.
Ну тыж переприсваиваешь имя процедуры, и у тебя все параметры, которые были до этого очищаются. Попробуй после присвоения имени процедуры сделать StoreProc.Parameters.Refresh. Вот тока не пойму, а зачем ты в рантайме имя процедуры присваиваешь. Через один компонент кучу процедур открывать хочешь. Неверный путь.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]