Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Реализация массивов в TSQL / 25 сообщений из 25, страница 1 из 1
02.05.2001, 14:14
    #32005069
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
СРОЧНО!!

Скажите, может кто знает, как в TSQL'е можно интерпретировать массив. Нужно в цикле присваивать каждой переменной массива определенное значение, причем кол-во итераций заранее неизвостно.
Понимаю, что в TSQL нет типа array, но все-таки, может кто-то уже сталкивался с подобными задачами и знает какое-то решение, подскажите.

Спасибо
...
Рейтинг: 0 / 0
02.05.2001, 14:34
    #32005070
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Набери в "Поиск" слово "массив" - и получишь ответ (я так надеюсь)
...
Рейтинг: 0 / 0
02.05.2001, 14:39
    #32005071
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Есть у кого-то более "существенные" идеи?
...
Рейтинг: 0 / 0
02.05.2001, 14:45
    #32005072
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Ок.. время нет.
Не очень мне хотелось, но пожалуй кроме как использования временных продцедур, больше ничего в голову и не приходит. Придется их использовать.

PS. В любом случае если есть еще альтернативные решения - поделитесь
...
Рейтинг: 0 / 0
02.05.2001, 14:47
    #32005073
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Во блин - 2 мая, а напряженка сейчас такая, что уже в названиях путаюсь.
Временных таблиц конечно...

ЗЫ: мрак
...
Рейтинг: 0 / 0
02.05.2001, 14:57
    #32005075
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
В T-SQL нет массивов, а вот в VB есть - пишите объект с соответствующими методами и свойствами на VB, регистрите этот объект на сервере и работаете с ним из вашего T-SQL кода через sp_OA.. процедуры. Можно еще xp написать, но это уже на C делать надо. Т.е. через задницу, конечно, но работает.

А какой максимальный размер массива - если в пределах сотни, то можно и совсем тупо подойти:

declare @a01 ..., @a02 ...

set @i=1
while (@i<=@YourArraySize) begin
if (@i=1) begin
set @a01=...
end else if (@i=2) begin
set @a02=...
... etc
end

Вобщем от упорства Вашего зависит - Copy & Paste очень такому программированию помогает . Ну, а так - только временные таблицы.
...
Рейтинг: 0 / 0
02.05.2001, 15:01
    #32005076
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Если бы заранее была известена размерность массива, я бы топик и не создавал наверное.
Читайте внимательно мой первый постинг.
...
Рейтинг: 0 / 0
02.05.2001, 15:01
    #32005077
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Поправка - код должен выглядеть так:

|set @i=1
|while (@i<=@YourArraySize) begin
| if (@i=1) begin
| set @a01=...
| end else if (@i=2) begin
| set @a02=...
| end etc...
|
| set @i=@i+1
|end

А что TAB можно как-то в текст сообщения вставить - а то куски кода как-то по уродски выглядят.
...
Рейтинг: 0 / 0
02.05.2001, 15:03
    #32005078
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Да я про МАКСИМАЛЬНЫЙ размер спросил - в конце-концов во всех языках массивы не безразмерные , а вариант с VB не устраивает? Я пользовался как-то - работало неплохо.
...
Рейтинг: 0 / 0
02.05.2001, 15:05
    #32005079
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
... а что касается использования OLE в TSQL'е, так для этой задачи это все равно, что из пушки по воробьям. Стоит ли ради одной то загвостки.
...
Рейтинг: 0 / 0
02.05.2001, 15:07
    #32005080
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Все от задачки зависит, конечно, но я как-то понял, что некоторых вещей мне T-SQL не хватает - ну и создал один объект, в который впихнул все, чего мне хватало - удобно.
...
Рейтинг: 0 / 0
02.05.2001, 15:08
    #32005081
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Максимальный тоже не известен, даже предел. В этом месяце может быть 2, а в следующем 500, а потом опять 2. Можно конечно задать например 1000 элементов (уверен, что больше точно не будет), но это извините для извращенцев решение
...
Рейтинг: 0 / 0
02.05.2001, 15:12
    #32005082
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Касательно создания OLE в TSQL'е - неизвестно еще что быстрее работать будет, врем. таблицы или оперирование массивом в VB.
...
Рейтинг: 0 / 0
03.05.2001, 10:30
    #32005097
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Если время будет, ответьте мне, ради любопытства: чем не устраивают временные таблицы, что надо обязательно пользоваться массивом? Мне интересно конкретный пример, как это может быть. Мне за 6 лет писания на SQL ни разу не захотелось массивами пользоваться.
...
Рейтинг: 0 / 0
03.05.2001, 11:10
    #32005102
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Все упирается в быстродействие. Если необходимо делать 1000 проводок над одним документом, как быстро это будет проистекать с временными таблицами
...
Рейтинг: 0 / 0
03.05.2001, 11:41
    #32005104
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
А можно еще чуть поподробней? Вроде тоже с бухгалтерией работаю ...
...
Рейтинг: 0 / 0
04.05.2001, 18:45
    #32005195
REX_X
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Ну если подробнее, то элементам массива я буду присваивать аналитику. Поскольку я не знаю точно сколько ее там наберется в отдельно взятой проводке, отсюда и траблы.
Хотя "траблы" - громко сказано, через врем. таблицы уже все работает, просто хотелось узнать есть ли альтернатива им.
...
Рейтинг: 0 / 0
04.05.2001, 21:53
    #32005200
Николай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
ДА ВЫ ЧЕ ВСЕ МЛИН !!! @#$@%$ ! СГОВОРИЛИСЬ ЧТОЛЬ !!!!

какие нафиг массивы... возьми таблицу, хоть темповую, хоть млин переменную
типа таблица !!! возьми курсор !! или просто инкрементируй переменную
в цикле, да индексируй млин по автоинкременту !!!! !!!!
да и гоняй до посинения !!! зачем массив 8() ???
если есть таблица !!!!!!! !!!!!!! !!!!!!


Ну вы даете...
...
Рейтинг: 0 / 0
06.05.2001, 11:23
    #32005218
Timur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Ой вот только не надо лепить горбатого.

Только что дрюкаюсь с массивами и тоже в бух.....

Так вот ср....й поиск по темповской таблице на моей не очень продвинутой тачке 10 - 30 милисекунд.
При первичном ключе и 8 записях в таблице.
А поиск в обычной строке - якобе массиве - ничего по времени не стоит.
Так что использование временных таблиц - не самое лучшее дело.
С уважением !
Тимур Говоров.
ЗЫ : решение мое пока простое - строка чар и пишу в нее и читаю из нее типа сабстринг и тд...
...
Рейтинг: 0 / 0
06.05.2001, 22:41
    #32005225
Fompro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
И всё-таки, если можно, чуть подробнее о задаче. Мне хотелось иметь в T-SQL переменную типа массив только в одном случае - при передаче набора данных, выбираемых пользователем в хранимую процедуру (печать л/с и т.п.)
...
Рейтинг: 0 / 0
07.05.2001, 10:11
    #32005230
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
2Timur

А зачем Вам вообще SQL? Пишите всё на ассемблере, всё просто летать будет.

Вы потратите уйму времени работая с массивами, за это время уже скорость компьтеров увеличиться больше.

А если с таблицами правильно работать, не выбирать оттуда по одной записи, это будет может и побыстрее чем с массивами. А Ваше решение, мягко говоря, странное. Типа "микроскопом гвозди" забивать и т.д.

Да и насчет "10 - 30 милисекунд" - не верю!

Вот такой примитивный тест:
create table #t(i int)
declare @i int
select @i=0
while @i<10
begin
insert #t select @i
select @i=@i+1
end

declare @d datetime
select @d=getdate()
select count(*) from #t t1, #t t2, #t t3, #t t4
where t1.i+t2.i=t3.i+t4.i
select datediff(ms,@d,getdate())

у меня на перебор этих 10000 вариантов тратиться 46 милисекунд. Может у Вас чего-то не то? Может Вы что-то не так делаете? Допускаете такой вариант?

С приветом Сергей
...
Рейтинг: 0 / 0
07.05.2001, 22:07
    #32005280
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Честно говоря, не очень понимаю, причем здесь бухучет и массивы... Аналитики - это справочники. Реализуются на таблицах. Регистры (в терминах 1С:Предприятия) или бухгалтерские счета - это тоже таблицы, которые на справочники ссылаются. Типичные реляционные связи, никаких детерминантов, определителей и экспонирования матриц. Что-то ты перемудрил.
Один документ не может включать совершенно разнородные операции. Либо это расходная накладная (товар!), либо это акт приема-передачи ОС-1 (по основным средствам), либо акт отпуска материалов в производство, и т.д. Уж не хочешь ли ты в одном документе устроить кашу из нескольких разнотипных документов?

Но если тебе действительно нужны 1000-мерные матрицы, то сколько же элементов в каждом измерении? Допустим, что всего 10. Возведи 10 в степень 1000 - получишь не какой-нибудь миллион и не триллион - число с 1000 нулями!!!. Тут ни асемблер, ни T-SQL, ни марсианский язык не поможет. Ты определись все-таки с предельной размерностью массива и с предельным количеством элементов по одному измерению.
...
Рейтинг: 0 / 0
19.06.2001, 08:58
    #32007813
Snik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
По поводу поиска во временной таблице: А вы слышали, что таблицы в SQL server можно индексировать, даже временные?
...
Рейтинг: 0 / 0
26.06.2001, 06:42
    #32008318
dingo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
Эй, народ,

А вы вообще про OLAP слышали? Зачем изобретать велосипед, когда там уже все сделано?
...
Рейтинг: 0 / 0
26.06.2001, 07:27
    #32008321
Ghost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация массивов в TSQL
А что там уже сделано? Можно слегка поподробней? Для кофейников?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Реализация массивов в TSQL / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]