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

 
Выполнение хранимки через ADOStoredProc
Grec
Отправлено: 26.01.2007, 02:11


Ученик-кочегар

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



В одном месте программы необходимо выполнить стандартную хранимую процедуру MS SQL, а имено fn_listextendedproperty. Для нее необходимо задавать 7 параметров. Знаю некоторые куски кода:

для указания параметров:
DBStoredProc->Parameters->ParamByName("property_name")->Value=Variant("default"); DBStoredProc->Parameters->ParamByName("level0_object_type")->Value=Variant("user"); DBStoredProc->Parameters->ParamByName("level0_object_name")->Value=Variant("dbo");
................ и т.д.

для хранимки:
DBStoredProc->Close();
DBStoredProc->ProcedureName="::fn_listextendedproperty";
DBStoredProc->Open();

как теперь это соединить вместе правильно, не знаю. Пробовал разные варианты.
Мысль в голове вертится, что может быть сначала надо эти параметры просто создать? wink.gif Подскажите, пожалуйста.
Grec
Отправлено: 28.01.2007, 23:43


Ученик-кочегар

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



пробую сделать следующим образом:

DBStoredProc->Active=false;
DBStoredProc->ProcedureName="::fn_listextendedproperty";
DBStoredProc->Parameters->Clear();
DBStoredProc->Parameters->CreateParameter("property_name",ftString,pdInput,128,"default"); DBStoredProc->Parameters->CreateParameter("level0_object_type",ftString,pdInput,128,"user"); DBStoredProc->Parameters->CreateParameter("level0_object_name",ftString,pdInput,128,"dbo"); DBStoredProc->Parameters->CreateParameter("level1_object_type",ftString,pdInput,128,"table"); DBStoredProc->Parameters->CreateParameter("level1_object_name",ftString,pdInput,128,"mt_contracts"); DBStoredProc->Parameters->CreateParameter("level2_object_type",ftString,pdInput,128,"column"); DBStoredProc->Parameters->CreateParameter("level2_object_name",ftString,pdInput,128,"default"); DBStoredProc->ExecProc();

пишет: "Нарушение синтаксиса или прав доступа"

в чем дело, подскажите?
Grec
Отправлено: 28.01.2007, 23:49


Ученик-кочегар

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



запрос

SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'mt_contracts', 'column', default)

в базе данных выполняется.

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