Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как получить значения поля без перебора по запросу, безо всяких ADOQuery.next и запоминания 
:(
    Опции темы
Lunatikus
Дата 11.9.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 1
Всего: 6



а как долго будет выполняться запрос лукапа в каждом шаге цикла на миллион шагов ?)


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akella
Дата 11.9.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Lunatikus @  10.9.2007,  14:26 Найти цитируемый пост)
редставь себе хотя бы 10 полей типа врачар(255) в миллион строк...и все это вариант... 

это у тебя на клиенте молотится?
так пусть на сервере

Добавлено через 3 минуты и 8 секунд
просто у меня тоже стоит задача, если ты видел мой пост здесь, в БД, я начал молотить циклы на клиенте, ОООчень долго, но мне помогли это перевести на сервер (FB), процедура отрабатывает за 4-5 секунд
PM MAIL   Вверх
Lunatikus
Дата 11.9.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 1
Всего: 6



у меня сервер MS SQL 2000.Как можно сделать процедуру,выполняемую сервером по вычислению полей?Без запроса ведь никак.Вот и думаю теперь как сделать запросом расчеты...а так все запросы у меня сервер выполняет,конечно


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akella
Дата 11.9.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Lunatikus @  11.9.2007,  13:34 Найти цитируемый пост)
Как можно сделать процедуру,выполняемую сервером по вычислению полей?Без запроса

а что MS SQL не позволяет делать выборки внутри хранимок?
PM MAIL   Вверх
Lunatikus
Дата 11.9.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 1
Всего: 6



конечно позволяет.Мы не так друг друга поняли =) я говорю о цикле перебора записей while...do... разве такое можно сохранить в "хранимках"?


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
ALeXandrK
Дата 11.9.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Цитата(SergeBS @ 11.9.2007,  07:46)
ALeXandrK
Цитата

Богат ни тот, у кого много, а тот, кому хватает

Не "ни тот", а "нЕ тот"!

А может я очень сильно отрицаю, тогда можно и НИ smile 


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
SergeBS
Дата 11.9.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Lunatikus
Объясни все-таки понятнее, что вычисляешь. Именно для A1, например. Берешь на 02.01.2007 ostatok, из него вычитаешь на 01.01.2007 ostatok и т.д. до конца? Я ничего из этого не понял:
Цитата
ДЛя каждого артикула свой календарь,В котором ко дню привязан определенный остаток,прогноз(получается в минус остатка текущего),заказ(тоже в минус остатку),приход товара(в плюс).На основе этих полей надо просчитать остатки будущих дней(прогноз,заказы и приходы будущих дней известны и известен остаток на текущий день). ...

Что из чего вычитается и т.п.?
PM MAIL   Вверх
Lunatikus
Дата 11.9.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 1
Всего: 6



вычитаю из первого ostatka (т.е. на 01.01.2007) значения полей zakaz,prognoz.Полученное значение записываю под датой 02.01.2007 запросом в таблицу.Смещаюсь на 02.01.2007 и уже из нового остатка(он сохранен в переменной) вычитаю prognoz,zakaz текущей строки.И так до самого конца.Когда наталкиваюсь на смену артикула,сбрасываю значение переменной и заменяю стоящим в текущей строке.,хранящей убывающий остаток.Понятно объясняю?

Это сообщение отредактировал(а) Lunatikus - 11.9.2007, 16:05


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
SergeBS
Дата 12.9.2007, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



ALeXandrK
Цитата
А может я очень сильно отрицаю, тогда можно и НИ 

Нельзя. НИ - только при перечислении.

Lunatikus
Тогда BOL тебе в руки - CURSOR. Они как раз для таких построчных обработок сделаны. Или делай хранимку, которая будет высылать результат вычитания. БУдешь тогда смотреть только на дату и артикул - трафик сети резко упадет. И еще: если взять первый ostatok, из него вычесть суммы prognoz + zakaz для выбранного артикула, то по твоему описанию - получается сразу конечный результат. Или в описании что-то упущено. Например необходимость заполнения всех полей ostatok.
PM MAIL   Вверх
Lunatikus
Дата 12.9.2007, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 1
Всего: 6



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


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Akella
Дата 12.9.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Lunatikus @  11.9.2007,  14:58 Найти цитируемый пост)
я говорю о цикле перебора записей while...do... разве такое можно сохранить в "хранимках"?

сохранить в хранимке? зачем там сохранять? Хранимка пробежалась по набору данных (НД), выдала резальтат и всё и ничего хрнаить в ней не нужно, для этого есть таблицы.
PM MAIL   Вверх
ALeXandrK
Дата 12.9.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Цитата(SergeBS @ 12.9.2007,  07:27)
ALeXandrK
Цитата
А может я очень сильно отрицаю, тогда можно и НИ 

Нельзя. НИ - только при перечислении.

 smile 
вот правила применения НЕ и НИ
Есть там пунктик "ни для усиления отрицания" -  и написано там, что обычно оно применяется,
когда уже есть отрицание, а обычно не значит обязательно...
Я не говорю, что ты не прав, но вот НИ мне больше по-душе в этом случае smile 
... ну это отвлечения...

Lunatikus: Так может тебе создать запрос (в том же SQL, кот. будет тебе считать и
обновлять), а уже в цикле вызывать этот запрос с помощью TADOStoredProc.
Всяко будет быстрее, чем использовать Next, пробегая по всем полям.


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
kobra
Дата 12.9.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



Цитата(Lunatikus @  11.9.2007,  16:04 Найти цитируемый пост)
И так до самого конца.Когда наталкиваюсь на смену артикула,сбрасываю значение переменной и заменяю стоящим в текущей строке.,

SergeBS правильно скозал, тут хорошо сработает курсор в курсоре.
можно конечно и табличними переменними ползоватся.
нужно протестить что оптимальнее будет
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1080 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.