![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как забрать данные из select, который выполняется в хранимой проц [D7, MSSQL]
DKalinin © (2002-12-10 15:13:00)есть StoredProc на сервере, в ней в конце выполняется Select
на клиенте есть TStoredProc
открываю ее StoredProc1.Open
подскажите, как забрать из нее значения столбцов по их номеру?
или по названию поля
StoredProc.FieldByName("field").AsString - не работает,
говорит, что нет такого поля, хотя оно точно есть.
FieldCount показывает значение 2 , хотя поле 12
Cheshit (2002-12-13 18:37:00) [1]В TStoredProc просто добавь все поля как в TQuery - проработает.
Только если процедура возвращает параметры тогда можеш получить
и пустой рекордсет.
_Voland (2002-12-10 19:44:00) [2]Я делал в таком случае выполнение процедуры в запросе
т.е. писал в запросе
Exec sp_Adress 1,3,70
и все затем открываешь запрос и работаешь
Fiend (2002-12-10 17:56:00) [3]То SergSuper
у него проблема была немного в другом:
во первых он видел рекордсет в гриде, что говорит о том, что он вернулся не пустой. И во вторых, текст на ПАСе у него был не правильный. я показал как исправить.
На основе первого делаем вывод, шо nocount его не спасёт.
Сорри если чем обидел!
SergSuper (2002-12-10 17:43:00) [4]To Fiend
Может и не лечит, но причина может быть в этом.
Если в начале стоит какой-нибудь update, то может выскакивать пустой рекордсет, в котором колонок нет и соответственно поэтому и ругается что не может найти колонку.
Fiend (2002-12-10 17:30:00) [5]То SergSuper
ну это ваще не от того лечит.
SergSuper (2002-12-10 17:23:00) [6]В начале процедуры set nocount on написано?
Hooch (2002-12-10 16:37:00) [7]в TadoQury напиши "exec MyProc 10,20" скажи Open и все дела
Delirium (2002-12-10 16:36:00) [8]Для ADO:
ADOQuery1.SQL.Text:="MyProc MyParam"
ADOQuery1.Open;
Delirium (2002-12-10 16:34:00) [9]Для MSSQL существуют всего два пути
insert ... exec ...
select ... from OpenQuery(...)
Fiend (2002-12-10 16:31:00) [10]То FetchParams
FetchParams - это для получения значений параметров после выполнения запроса к SyBase или MSSQL.
не путайте чела.
То DKalinin
Query3.ParamByName( "DateSetBegin").AsString:=wwDBDatetimePicker1.Text;
Query3.ParamByName( "DateSetEnd").AsString:=wwDBDatetimePicker2.Text;
Query3.Open;
говорит, что параметр не найден
в тексте запроса - exec OtstoyReport :DateSetBegin, :DateSetEnd
DKalinin (2002-12-10 16:26:00) [11]кусочек кода приведи, пожалуйста
BorisUK (2002-12-10 16:15:00) [12]FetchParams
before Open procedure
DKalinin (2002-12-10 16:08:00) [13]делаю так:
Query3.ParamByName("BeginSetDate").AsString:=wwDBDatetimePicker1.Text;
Query3.ParamByName("EndSetDate").AsString:=wwDBDatetimePicker2.Text;
Query3.Open;
говорит, что параметр не найден
в тексте запроса - select * from OtstoyReport (:DateSetBegin, :DateSetEnd)
что я делаю не так?
Prooksius (2002-12-10 16:05:00) [14]2 DKalinin © (10.12.02 15:42)
Лучше использовать TQuery и в её SQL написать select * from MyStoredProc(:Param1,:Param2,...)
Что так критично использовать TStoredProc?
stone (2002-12-10 15:54:00) [15]Я бы сначала выполнил эту процедуру в Query Analyzer, и посмотрел бы что она возвращает, а уж потом выбирал бы компоненты для приложения.
asmith (2002-12-10 15:48:00) [16]Использую для получения набора данных из StoredProc TADOQuery - проблем никаких.
DKalinin (2002-12-10 15:42:00) [17]неужели нет ни одного способа прочитать, что выдал select внутри процедуры на сервере?
ведь грид их через TStoredProc видит
помогите, пожалуйста