Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
СРОЧНО!! Скажите, может кто знает, как в TSQL'е можно интерпретировать массив. Нужно в цикле присваивать каждой переменной массива определенное значение, причем кол-во итераций заранее неизвостно. Понимаю, что в TSQL нет типа array, но все-таки, может кто-то уже сталкивался с подобными задачами и знает какое-то решение, подскажите. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:14 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Набери в "Поиск" слово "массив" - и получишь ответ (я так надеюсь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:34 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Есть у кого-то более "существенные" идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:39 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Ок.. время нет. Не очень мне хотелось, но пожалуй кроме как использования временных продцедур, больше ничего в голову и не приходит. Придется их использовать. PS. В любом случае если есть еще альтернативные решения - поделитесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:45 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Во блин - 2 мая, а напряженка сейчас такая, что уже в названиях путаюсь. Временных таблиц конечно... ЗЫ: мрак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:47 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
В 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 очень такому программированию помогает . Ну, а так - только временные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 14:57 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Если бы заранее была известена размерность массива, я бы топик и не создавал наверное. Читайте внимательно мой первый постинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:01 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Поправка - код должен выглядеть так: |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 можно как-то в текст сообщения вставить - а то куски кода как-то по уродски выглядят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:01 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Да я про МАКСИМАЛЬНЫЙ размер спросил - в конце-концов во всех языках массивы не безразмерные , а вариант с VB не устраивает? Я пользовался как-то - работало неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:03 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
... а что касается использования OLE в TSQL'е, так для этой задачи это все равно, что из пушки по воробьям. Стоит ли ради одной то загвостки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:05 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Все от задачки зависит, конечно, но я как-то понял, что некоторых вещей мне T-SQL не хватает - ну и создал один объект, в который впихнул все, чего мне хватало - удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:07 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Максимальный тоже не известен, даже предел. В этом месяце может быть 2, а в следующем 500, а потом опять 2. Можно конечно задать например 1000 элементов (уверен, что больше точно не будет), но это извините для извращенцев решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:08 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Касательно создания OLE в TSQL'е - неизвестно еще что быстрее работать будет, врем. таблицы или оперирование массивом в VB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2001, 15:12 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Если время будет, ответьте мне, ради любопытства: чем не устраивают временные таблицы, что надо обязательно пользоваться массивом? Мне интересно конкретный пример, как это может быть. Мне за 6 лет писания на SQL ни разу не захотелось массивами пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2001, 10:30 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Все упирается в быстродействие. Если необходимо делать 1000 проводок над одним документом, как быстро это будет проистекать с временными таблицами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2001, 11:10 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
А можно еще чуть поподробней? Вроде тоже с бухгалтерией работаю ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2001, 11:41 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Ну если подробнее, то элементам массива я буду присваивать аналитику. Поскольку я не знаю точно сколько ее там наберется в отдельно взятой проводке, отсюда и траблы. Хотя "траблы" - громко сказано, через врем. таблицы уже все работает, просто хотелось узнать есть ли альтернатива им. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2001, 18:45 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
ДА ВЫ ЧЕ ВСЕ МЛИН !!! @#$@%$ ! СГОВОРИЛИСЬ ЧТОЛЬ !!!! какие нафиг массивы... возьми таблицу, хоть темповую, хоть млин переменную типа таблица !!! возьми курсор !! или просто инкрементируй переменную в цикле, да индексируй млин по автоинкременту !!!! !!!! да и гоняй до посинения !!! зачем массив 8() ??? если есть таблица !!!!!!! !!!!!!! !!!!!! Ну вы даете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2001, 21:53 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Ой вот только не надо лепить горбатого. Только что дрюкаюсь с массивами и тоже в бух..... Так вот ср....й поиск по темповской таблице на моей не очень продвинутой тачке 10 - 30 милисекунд. При первичном ключе и 8 записях в таблице. А поиск в обычной строке - якобе массиве - ничего по времени не стоит. Так что использование временных таблиц - не самое лучшее дело. С уважением ! Тимур Говоров. ЗЫ : решение мое пока простое - строка чар и пишу в нее и читаю из нее типа сабстринг и тд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2001, 11:23 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
И всё-таки, если можно, чуть подробнее о задаче. Мне хотелось иметь в T-SQL переменную типа массив только в одном случае - при передаче набора данных, выбираемых пользователем в хранимую процедуру (печать л/с и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2001, 22:41 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
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 милисекунд. Может у Вас чего-то не то? Может Вы что-то не так делаете? Допускаете такой вариант? С приветом Сергей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2001, 10:11 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Честно говоря, не очень понимаю, причем здесь бухучет и массивы... Аналитики - это справочники. Реализуются на таблицах. Регистры (в терминах 1С:Предприятия) или бухгалтерские счета - это тоже таблицы, которые на справочники ссылаются. Типичные реляционные связи, никаких детерминантов, определителей и экспонирования матриц. Что-то ты перемудрил. Один документ не может включать совершенно разнородные операции. Либо это расходная накладная (товар!), либо это акт приема-передачи ОС-1 (по основным средствам), либо акт отпуска материалов в производство, и т.д. Уж не хочешь ли ты в одном документе устроить кашу из нескольких разнотипных документов? Но если тебе действительно нужны 1000-мерные матрицы, то сколько же элементов в каждом измерении? Допустим, что всего 10. Возведи 10 в степень 1000 - получишь не какой-нибудь миллион и не триллион - число с 1000 нулями!!!. Тут ни асемблер, ни T-SQL, ни марсианский язык не поможет. Ты определись все-таки с предельной размерностью массива и с предельным количеством элементов по одному измерению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2001, 22:07 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
По поводу поиска во временной таблице: А вы слышали, что таблицы в SQL server можно индексировать, даже временные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2001, 08:58 |
|
||
|
Реализация массивов в TSQL
|
|||
|---|---|---|---|
|
#18+
Эй, народ, А вы вообще про OLAP слышали? Зачем изобретать велосипед, когда там уже все сделано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2001, 06:42 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32005070&tid=1826374]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
4ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 407ms |

| 0 / 0 |
