Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Stored Procedure не возвращает набор записей?

493
24 марта 2002 года
Taras
24 / / 20.09.2000
В БД MS SQL 7 находиться процедура вида

CREATE PROCEDURE sp_is_datareader @name_in_db varchar(100)
AS
EXEC sp_helpuser @name_in_db

Она возвращает поля UserName, GroupName, LoginName, DefDBName, UserID, SuserID.

Меня интересует только поле “GroupName”, в котром можно узнать роль пользователя на уровне БД.

Проверку пользователя из Builder 5 провожу так

void __fastcall TForm1Button1Click(TObject *Sender)
{
ADOConnection1->Open();

if (ADOStoredProc1->Connection)
{
ADOStoredProc1->ProcedureName = "sp_is_datareader";
ADOStoredProc1->Parameters->Clear();

TParameter *NewPar;

NewPar = ADOStoredProc1->Parameters->AddParameter();
NewPar->DataType = ftString;
NewPar->Direction = pdInput;
NewPar->Name = "@name_in_db";

ADOStoredProc1->Parameters->ParamValues["@name_in_db"] = "Иванов";
ADOStoredProc1->ExecProc();

while (!ADOStoredProc1->Eof)
{
if (ADOStoredProc1->FieldByName("GroupName")->AsString == "db_datareader")
ShowMessage("Вы datareader");
ADOStoredProc1->Next();
}
}
}

ADOStoredProc1 записей не возвращает, хотя в Query Analiser проверял строкой «EXEC sp_is_datareader Иванов» - все работает.

Подскажите, пожалуйста, что я делаю не так.
539
26 марта 2002 года
Ivan
30 / / 20.07.2000
Если хочешь получить доступ к записям
необходимо
ADOStoredProc->Open();
ADOStoredProc->Close();

если процедура никаких записей не возвращает
то ADOStoredProc->ExecProc();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог