C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Параметры ХП
full_lamer
Отправлено: 28.05.2004, 14:53


Машинист паровоза

Группа: Участник
Сообщений: 225



Люди подскажите как передать параметр в ХП MSSQL 2000? Ну не хватает у меня мозгов... sad.gif
Вообщем есть ХП:

create procedure p1
@gid int
as
select * from table1 where id = @gid

Нужно загнать туды параметр, причем желательно динамически его добавить...

Отредактировано full_lamer — 28/05/2004, 16:00
Gedeon
Отправлено: 28.05.2004, 15:15


Ветеран

Группа: Модератор
Сообщений: 1742



Не пора ли хэлп начать читать?
QUOTE

B. Use a simple procedure with parameters
This stored procedure returns only the specified authors (first and last names supplied), their titles, and their publishers from a four-table join. This stored procedure accepts exact matches for the parameters passed.
SQL
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'au_info' AND type = 'P')
DROP PROCEDURE au_info
GO
USE pubs
GO
CREATE PROCEDURE au_info
@lastname varchar(40),
@firstname varchar(20)
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
ON a.au_id = ta.au_id INNER JOIN titles t
ON t.title_id = ta.title_id INNER JOIN publishers p
ON t.pub_id = p.pub_id
WHERE au_fname = @firstname
AND au_lname = @lastname
GO

The au_info stored procedure can be executed in these ways:

EXECUTE au_info 'Dull', 'Ann'
-- Or
EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann'
-- Or
EXECUTE au_info @firstname = 'Ann', @lastname = 'Dull'
-- Or
EXEC au_info 'Dull', 'Ann'
-- Or
EXEC au_info @lastname = 'Dull', @firstname = 'Ann'
-- Or
EXEC au_info @firstname = 'Ann', @lastname = 'Dull'

Or, if this procedure is the first statement within the batch:

au_info 'Dull', 'Ann'
-- Or
au_info @lastname = 'Dull', @firstname = 'Ann'
-- Or
au_info @firstname = 'Ann', @lastname = 'Dull'




Отредактировано Gedeon — 28/05/2004, 16:18
full_lamer
Отправлено: 28.05.2004, 15:17


Машинист паровоза

Группа: Участник
Сообщений: 225



Нет нет нет
Вы меня как всегда не поняли... sad.gif

Я не могу из билдера передать параметр в ХП:
то Access Violetion Error
то говорит что незнаю такого параметра...
sad.gif
** pasha
Отправлено: 28.05.2004, 17:53


Не зарегистрирован







А через какой компонент работаете с базой данных ?

Через него и пересылаете.
Если хранимая процедура не возвращает набор данных,
можете через StoredProc, если возвращает,
вызывайте хранимую процедуру через Query:

CODE

AnsiString s = "Select * from p1(:gid)";
Query1->ParamByName("gid")->AsInteger = 10;
Query1->SQL->Add(s);
Query1->Open();


full_lamer
Отправлено: 31.05.2004, 10:36


Машинист паровоза

Группа: Участник
Сообщений: 225



Не получилось: гвоорит что незнает такого объетка (название ХП)... sad.gif
full_lamer
Отправлено: 31.05.2004, 11:03


Машинист паровоза

Группа: Участник
Сообщений: 225



извиняюсь за беспокойство, я просто полный ламер: я нашел способ, вернее способ лежал у меня перед глазами, но я либо слепой, либо глупец...
всем спасибо.

Вернуться в Работа с базами данных в C++Builder