Железо : атлон 3000+, 512 озу, сата 80 гб.
p.s. Devrace.com не работает уже 2 дня ....

Модератор: kdv
Это не тупо, это так и должно быть. Только не пакет, а конкретная запись.Пока как вариант вижу тупо делать выборку select* from table where где условия задавать в таком виде что бы на выходе был пакет записей включающий в себя интересующую меня запись
Да. Вот смотри, как сделано в базе по нашим абонентам. При выборе справочника абонентов, сразу открывается форма фильтрации. Я ввожу лицевой счет, жму "ОК" и в сетке, естественно, оказывается одна запись. Вот с ней-то я уже и работаю. F3 - одна форма, F4 - другая т.д.paratruper писал(а):необходимо визуализировать не только одну запись на которой должен стоять курсор но и остальные 19 (грид на 20записей) , потому что запрос всегда будет возвращать одну запись (по условиям задачи) , а пользователю надо создать иллюзию непрерывной таблицы(грида).
Или это тоже не совсем корректно?
Щаз. Именно это ты делаешь, когда запускаешь Locate.paratruper писал(а): В том-то все и дело что НЕ СЛИВАЮ Я ВСЕ ЗАПИСИ НА КЛИЕНТА,
А в кеше они откуда возьмуццо? От сырости?paratruper писал(а): если бы сливал то вопросов таких бы не задавал, locate'om в кеше искал бы да и все.
Удивительно, правда?paratruper писал(а): А так приходиться лить на клиента по 100 записей, и если искомая запись не в слитом диапазоне locate долго работает.
Какая-нибудь. Угумс. А подумать слегка головом?paratruper писал(а): Изначально у меня была мысль что у фибов предусмотрена какая нибудь возможность быстрого перехода и установки курсора на необходимую запись, но что-то не могу найти.
Да. И вправду не все. Только те, которые сзаду позиции, которую локатишь.paratruper писал(а): p.s. ВСЕ ЗАПИСИ НА КЛИЕНТА НЕ СЛИВАЮ...:):) и сливать не буду
paratruper писал(а): Изначально у меня была мысль что у фибов предусмотрена какая нибудь возможность быстрого перехода и установки курсора на необходимую запись, но что-то не могу найти.
вот если бы можно было добавить номер/id/значение записи относительно которой работает режим ограниченного кеша тогда вообще было бы великолепно."Merlin" писал(а): Какая-нибудь. Угумс. А подумать слегка головом?Как бы ты лично такую возможность реализовал? Тама под низОм у на що? Прально, SQL-сервер. А в SQL что-либо похожее на слово Locate видал когда-нить? Серж, конечно, яркий представитель нашего клана магов и кудесников, но не всемогущ
![]()
paratruper писал(а): p.s. ВСЕ ЗАПИСИ НА КЛИЕНТА НЕ СЛИВАЮ...:):) и сливать не буду
p.s. Про locate забыли"Merlin" писал(а): Да. И вправду не все. Только те, которые сзаду позиции, которую локатишь.
Ну и напрасно. Очень удобная и пользительная штука когда к месту. Например, инкрементальный поиск в ограниченной выборке. Или позиционирование всё той же ограниченной выборки после открытия на предустановленный ID.paratruper писал(а):Всепро locate забыл. И даже на него как бы забИл.
От же ж упёртый. И Фибы опять же тут ни при чом. И не поможет тебе Серж. Нету в реляционных базах никаких номеров записей. Не-ту. Есть ордер бай. Номер записи есть на клиенте, в уже отфетченном сформированном курсоре (RecNo). И при повторении запроса этот номер может быть у совсем другой записи. Для того, чтоб подать тебе произвольный фрагмент курсора именно по порядковому номеру, его где-то надо построить целиком и выкусить из него интересующий тебя кусок. Или действительно процедурой, с тремя запросами - "центральной" записи и двумя с разным направлением сортировки от заданного ID. Тока проктология это. В случае натуральной сортировки заставишь сервер для извлечения сотни дважды перебрать все 400000 записей. А потом ещё отсортировать полученный результат. Ты не о том думаешь. Надо думать об ограничении выборки используя её естественную природу и способ применения. Заставить пользователя использовать удобные и очевидные фильтры в Where. Например, чего-то там за заданный период времени. Или красного цвету. Или длиной от метра до полутора. Или всё вместе. Я ж не знаю что ты там фетчишь бочками. А в ограниченной до единиц тысяч выборке и полокейтиться не грех. Если записи не по тыще длинных чаровских полей в ширину.paratruper писал(а): то есть селектить нужную запись плюс несколько верхних и нижних для забивки грида(ну не обрадуеться пользователь если грид вдруг практически опустеет). Соответственно список отсортирован по order by. Единственное конечно было бы хорошо если бы в Фибах был предусмотрен какой нибудь параметр типа № поля или записи относительно которой работает ограниченый кеш,
Зачем? Для красоты?paratruper писал(а): Значит все дело в следующем:
Есть таблица ~400000 записей (клиенты) есть грид1 к нему подключен датасет1
и он же работает с таблицей то есть является визуальным её представлением(показывет клиентов которые есть в таблице)
Ясен перец. В грид поллимона не войдёт, экран треснет.paratruper писал(а): попрошу заметить не ВСЕ ЗАПИСИ ОДНОВРЕМЕННО, а ограниченое их количество
Начинается каскадная проктология. Бессмыссленный открытый запрос к полному списку, висячему как картинка, порождает проблемы с памятью на клиенте и нагрузкой на сеть. Это был первый каскад. Выбрасывать жалко, уже есть, знач наворачиваем следующий каскад - насилие над концепцией датасета, громко называемое режимом ограниченного кеша. Кстати, я лично не перебрался с IBX на плюсы именно из-за засилия в них рюшечек, отнюдь не способствующих пониманию разработчиком ни как работает сервер, ни как организована связь клиент-сервер, ни сути того, чем он вообще занимается, а позволяющих делать что и как привык на уровне языческого мировоззрения. Для строительства веб-междумордий (interfaces) в самом сервере есть first-skip (к кторому тоже надо подходить с пониманием и оглядкой), нафиг ещё это кастрирование подготовленного на сервере курсора, да ещё и обычно уже целого после сортировки, в tmp-файле? Стремление свести все функции системы к одной экранной форме? Мышление экранными контролами, а не сущностями, связями и функциями? Мрак. И Серж это поощряетparatruper писал(а): (фетчиться примерно 100 записей)
Ну и чудненько. Хорошая заготовка для выполнения определённой группы функций информационной системы.paratruper писал(а): есть датасет2 к нему подключен грид2 в датасете2 выводятся должники, которые являються теми же клиентами но с признаком "должны".(данные беруться из той же болшой таблицы плюс заджойниваються с ещё одной) тоже соответствено не все одновременно.
Вот именно. Внимание: а для на зачем? Патамушта есть? Третий каскад?paratruper писал(а): Теперь внимание.необходимо сделать так чтобы при клике на записи в гриде 2, в гриде 1 курсор автоматически ставился на запись соответствующего клиента.
Чем бы дитё не тешилось, лишь бы не вешалось.paratruper писал(а): Я делал это locate но как оказалось медленно, теперь буду делать вариант с 3 selecta'ми. Что бы выбрать в Грид 1 записи с искомой .
Думаешь. Руками, а не головой. Не хочу обидеть, хочу направить. Основа проектирования - функционально-целевой анализ и структурирование предметной области как совокупности модели и решаемых на ней задач. А не набрасывание на формы гридов и придумывание а что бы теперь с ними сделать.paratruper писал(а): Что я делаю неправильно?