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