объединение DATASET?
Имеется DBGRID, имеется связанный с ним DATASOURSE1, который в свобю очередь связан с DATASET1.
Есть ли возможность в DBGRID сразу отображать строки из DATASET1 и еще некоего DATASET2? То есть существуют ли возможности объединения датасетов? Или какие еще есть варианты :) ?
Заранее всем спасибо!
А вообще, мне не понятна суть этого всего. Набор данных, который отображается в сетке для того и существует, чтобы работать с ним. Теоретически, не может сложиться ситуации для работы с данными, особенно UPDATE, из разных наборов. Это противоречит самой идее баз данных, ибо в результате невозможно сохранить целостность.
А вообще, мне не понятна суть этого всего. Набор данных, который отображается в сетке для того и существует, чтобы работать с ним. Теоретически, не может сложиться ситуации для работы с данными, особенно UPDATE, из разных наборов. Это противоречит самой идее баз данных, ибо в результате невозможно сохранить целостность.
Согласен. Я поясню более четко свою ситуацию:
Редактирование не требуется, необходимо только отображение данных в сетке.
Произошло обращение программы к БД, в результате чего в сетке виден набор данных (например 10 записей).
Происходит второе обращение к БД и запрос возвращает уже не 10, а, скажем, 8 записей. Суть моей задачи: отобразить в сетке 8 оставшихся записей с красным фоном и 2 "ушедшие записи" с зеленым фоном. Естественно, эти 2 зеленые ушедшие записи в нововм DATASETе отсутствуют (потому они и ушедшие:) ).
Какова была идея: Сделать 2 датасета сначала обновить первый, затем обновить второй, в результате чего во втором датасете 8 записей, в первом-10. Далее их отфильтровать (свойством Filter) соединить и отобразить то, что получилось. Идея, конечно, немного мутноватая, да и как оказалось нерешаемая.
Если будут идеи как лучше это реализовать, буду признателен.
Имеется DBGRID, имеется связанный с ним DATASOURSE1, который в свобю очередь связан с DATASET1.
Есть ли возможность в DBGRID сразу отображать строки из DATASET1 и еще некоего DATASET2? То есть существуют ли возможности объединения датасетов? Или какие еще есть варианты :) ?
Заранее всем спасибо!
Выход: загонять в DATASET1 данные из разных источников, посредством SQL (UNION), при этом для корректного редактирования и сохранения целостности данных необходимы внешние ключи в используемых источника.
Можно было бы попробовать, но дело в том что в БД таких записей уже не будет. Мне нужно отследить ушедшие из БД записи (между первым и вторым обращением к БД). А отследить их видится возможным только сохраняя на стороне клиента в какие-то датасеты и т.д.
во временные таблицы можно, либо продумывать структуру БД таким образом, что бы записи напрямую не удалялись сразу, а ставилась пометка на удаление (по этой пометке можно раскрашивать в гриде) а по окончании сессии клиента применялась бы транзакция, которая физически удаляла помеченные записи.
К БД у меня права только на чтение, поэтому никак.
Все данные, которые есть в DataSet вывожу в обыкновенный StringGrid, а потом в этот же StringGrid добавляю сохраненные (ушедшие из запроса) строки с зеленоым цветом.
Хочу поделиться своим мнением: StringGrid намного круче чем DBGrid. Действительно полявилась полная свобода, что хочу то вывожу и главное как хочу. Если будут стоять не станартные задачи - совет юзайте StringGrid. Там даже с выделением и поиском выделенных строк оказалось проще в разы. + DBGrid станлартный довольно глючный оказался в области выделения строк и прочего, а в стрингриде все супер, по крайней мере реализуется то что нужно довольно просто.
так что если кому интересно или кто с чем мучается - могу помочь своим небольшим опытом