
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.86] |
![]() |
|
Сообщ.
#1
,
|
|
|
Есть хранимая процедура (pPolsq) на SQL 2005 Express с одним, в процедуре же и инициализируемом, параметром (Inicials):
Цитата В SQL Server Management Studio Express процедура выполняется без проблем, когда же я пытаюсь в Builder6 из компонента ADOQuery вызвать её сформировав строку запроса вот так: Цитата select * from pPolsq() то выходит ошибка: "Недопустимое имя объекта "pPolsq"". Никакие переименования процедуры не помогают. А вот если вместо имени процедуры поставить имя любой таблицы той же SQL-базы, то всё выполняеься прекрасно. Мне кажется, что всё дело в синтаксисе вызова процедуры, но найти правильный не могу. Подскажите, пожалуйста, кто знает. |
Сообщ.
#2
,
|
|
|
Вроде бы нужно так:
![]() ![]() ADOQuery1->SQL->Text = L"exec pPolsq"; ADOQuery1->Open(); if(ADOQuery1->Active) { // do } |
Сообщ.
#3
,
|
|
|
Цитата mirra88 @ Мне кажется, что всё дело в синтаксисе вызова процедуры, но найти правильный не могу. Подскажите, пожалуйста, кто знает. правилно считаеш. процедура выполняется камандой execute или коротко exec. в from можно ставить имя таблицы, вьюшки или табличной функции |
Сообщ.
#4
,
|
|
|
Спасибо за помощь. Вопрос мне удалось решить (кое чем мне сильно помогли ещё и на на другом форуме). Вначале на SQL-сервере я создаю процедуру (pLocTabl) вот такого содержания:
![]() ![]() USE [tatApril11] Declare @Inicials nvarchar(35) Set @Inicials='ИВАНОВ В И' SELECT Distinct mibAPAC.FAM, mibAPAC.Mes INTO #LocTable Where mibAPAC.FAM=@Inicials; return (т. е. использую временную таблицу LocTable) А потом вот таким образом вызываю её в Builder (это меня artsb научил, спасибо): ![]() ![]() ADOQuery1->Close(); ADOQuery1->SQL->Text = "exec pLocTabl"; ADOQuery1->Open(); |
![]() |
Сообщ.
#5
,
|
|
Пробовали TStoredProc?
|
Сообщ.
#6
,
|
|
|
Bas, ты хотел скозать TADOStoredProc?
|
Сообщ.
#7
,
|
|
|
Пока ещё не пробовала
|