Форум: "Базы";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизFor Select (IB) аналог в ? Найти похожие ветки
← →
masik (2002-07-23 14:30) [0]Господа подскажите плз, надо выполнить выборку из таблицы,и к каждой строку применить некую операцию.
Пробовал через курсоры. но ентпа штуковина возвращает каждую строку как отдельный набор данных. а мне надо енто в гриде отобразить
← →
zx (2002-07-23 14:37) [1]Может я не понял ...
select (t1 + t2) * 5, t3 from tabl1
← →
masik (2002-07-23 14:53) [2]Select x, y, z, дополнительное поле которое рассчитывается в отдельном блоке операторов, т.е. надо его приписать к выборке но не простой join
← →
masik (2002-07-23 14:56) [3]прошу прощения у модератора, за такой постинг, просто при отправке сообщения происходит отвал, и непонятно помешено ли сообщени в форум
← →
zx (2002-07-23 15:03) [4]Где рассчитывается дополнительное поле?
И как его надо приписать?
← →
masik (2002-07-23 15:11) [5]Дополнительное поле представляет собой Select из нескольких записей, в связи с этим данные этих записей я умещаю в поле с разделителями, т.е. делаю Set. Поле рассчитывается по идентификатору из (Select x, y, z) в отдельной процедуре.
← →
Дмитрий Баранов (2002-07-23 15:44) [6]Более-менее универсальное решение - см.
Create function
в Books online
← →
zx (2002-07-23 15:48) [7]Все равно не понял?:(
как связывать, почему join не пойдет?
сделай через Views.
← →
Johnmen (2002-07-23 15:56) [8]>masik ©
Что-то много постов, а результата не видать...:)
Лучше приведи, как это ты делаешь для IB, а мы тебе скажем, как это переделать под MSSQL.
← →
masik (2002-07-23 16:34) [9]постов много по неясным причинам ин7тернет связи, а ответ нужен один
В IB это писалось примерно так:
returns
pCol1, pCol2, pCol3, pCol4
for
Select Col1, Col2, Col3
from Table1
into :pCol1, :pCol2, :pCol3
do begin
:pCol4="";
for
Select Col21
from Table2
Where Param=:pCol1
into :pCol5
do
:pCol4=:pCol4+pCol5
suspend; //возврат значений pCol1, pCol2, pCol3, pCol4
end
в результате получается один набор данных
При подобной организации циклов с использованием курсоров получается тотже результат, но каждая возвращенная запись
(Select [Col1]=@Col1, ...) получается помещенная в своем наборе данных, соответственно Grid отображает только одну единственную запись из первого набора.
Я понимаю, что можно создать временную таблицу, запихнуть в нее данные и потом сделать общий селект, а без ентого как
← →
masik (2002-07-24 09:06) [10]Народ, ну хоть кто нибудь.
через временную таблицу сделал. а все таки
← →
icu (2002-07-24 09:27) [11]Посмотри описание оператора Fetch.
← →
zx (2002-07-24 09:55) [12]По-моему это можно реализовать через CASE
← →
masik (2002-07-24 10:09) [13]icu ©, ткни пальцем.
FETCH позиционирует курсор, да, позволяет выбрать строку, но результат то
au_lname au_fname
---------------------------------------- --------------------
Blotchet-Halls Reginald
au_lname au_fname
---------------------------------------- --------------------
del Castillo Innes
и в гриде видно
"Blotchet-Halls Reginald "
← →
masik (2002-07-24 10:42) [14]zx ©, а можно делать
Select from "procedure"
сколько ни ковырял подобного примера не видел
← →
zx (2002-07-24 12:02) [15]Нет, только из views
Если в конце procedure стоит select то
exec procedure будет возвращать нд.
← →
Delirium (2002-07-24 14:33) [16]Если призвести незначительное изменение в системной таблице:
update master.dbo.sysservers Set srvstatus=1440 where srvid=0
То становится возможным использовать функцию OpenQuery:
select * from OpenQuery(MyServer,"exec MyProc")
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c