![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Записи в DBGrid'e странным образом исчезают.
Kolan © (2007-07-17 09:23:00)Здравствуйте,
Сиптомы такие.
1. Становлюсь на последнюю запись.
2. Жму вниз появляется новая строка.
3. Ввожу данные
4. Перехожу на строку выше, и
Только что введенная строка появляется в самом верху грида вместо той что там была до этого.
Если снова спустить на последнюю строку, и нажать вниз(те снова добаить новую запись), то добавленая на шагах (1-4) запись исчезает, а появляется та что там была ранее.
Причем в БД добавляется все правильно и нормально. Сам DataSet TQuery это простойSELECT FROM TABLEбольше ничего.
Что за странность? Как исправить?
ЗЫ
Компоненты стандартные, Delphi 7.
Kolan (2007-07-17 13:41:00) [1]Показали как сделать с UpdateObjcet. Вроде нормально стало работать
sniknik (2007-07-17 13:18:00) [2]а автоинктемент/ключ у тебя в таблице/запросе есть?
поставь AutoRefresh в труе (хз. может не считывает, а сортировка по нему), и апдейте модель еще поставь в upWhereKeyOnly (это в принципе не должно зависеть но обновления по ключу быстрее)
> Может с таблицей что не так?
ну так проверь на других...
Kolan (2007-07-17 13:04:00) [3]> попробуй на чистом проекте
1. Новый проект.
2. Кинул DataSource и Query. Из того проекта скопировал Базу(TDateBase).
3. Все поподключал друг к другу.
4. Настроил ReuestLive
5. Все тоже самое
Может с таблицей что не так?
sniknik (2007-07-17 12:52:00) [4]попробуй на чистом проекте, видиш, говорят не должно скакать... а раз скачет то чтото вроде индекса, только неправильного, там у тебя срабатывает. отключи фильтры (могут неявно индексировать), мастер детайл ти т.д., вообще в "чистом" проекте, сделай минимум настроек, только коннект и ничего дополнительного, так скачет?
Kolan (2007-07-17 11:37:00) [5]> может он за него держится потому, что хорошо его знает,
> и знает как это исправить
Незнает, я бы не спросил тут если бы мне ответили
Desdechado (2007-07-17 11:28:00) [6]Пользовал года 3 с FireBird. В основном, конечно, через UpdateSQL, но были и живые с прямым редактированием в гриде (преимущественно справочники).
sniknik (2007-07-17 11:22:00) [7]Desdechado © (17.07.07 11:05) [10]
ты кстати уточни "Сколько пользовал" это сколько? считая только клиент серверные базы.
sniknik (2007-07-17 11:20:00) [8]> Ну это вопрос к начальнику моему, но задавать я его не буду…
как много начальства которое говорит не что делать, а как делать и что использовать...
ну вот и подойди к нему с вопросом из топика, спроси "как?" (может он за него держится потому, что хорошо его знает, и знает как это исправить).
> Сколько пользовал, подобных глюков в подобных случаях не замечал, все было корректно. ...
для файл серверной базы открой таблицей и сделай активный индекс по полю с аналогичным приращением. будет тоже самое, нормально.
что сдесь не тоже самое так это, как сделать индекс на временной таблице которую получили от запроса... (не, можно ее конечно записать локально, а изменения с нее в mssql делать самому, но это куча лишних действий. ну его нафиг)
Desdechado (2007-07-17 11:05:00) [9]> BDE? ну ичего же вы хотели когда его использовали?
Сколько пользовал, подобных глюков в подобных случаях не замечал, все было корректно. Хотя добавление строк и редактирование прямо в гриде практикую крайне редко.
Kolan (2007-07-17 10:54:00) [10]> BDE? ну ичего же вы хотели когда его использовали?
Ну это вопрос к начальнику моему, но задавать я его не буду
> но рекомендуют делать формочку на добавление
Удобнее редактировать прям Grid, так как пользователь вводит данные с бумажки, а на бумажке такая(примерно) же таблица Так что формочка не катит
sniknik (2007-07-17 10:39:00) [11]> Что за странность? Как исправить?
использовать датасет с возможностью локальной сортировки, ее и установить "по вкусу" (типа например при добавлении записи сортируемому полю присваивать возрастающее значение, тогда запись останется в конце)
> И ResuestLive у TQuery
BDE? ну ичего же вы хотели когда его использовали?
> А как надо?
а как удобнее так и надо. но рекомендуют делать формочку на добавление, зачастую такой способ только замедляет ввод.
Kolan (2007-07-17 10:29:00) [12]> Подобная сугубо «локальная» технология редактирования инф-
> ции в БД чревата
А как надо?
Kolan (2007-07-17 10:28:00) [13]> Попробуй порыться в свойствах DS
Да рылся, я ж не зря в начинающих запостил :(
А как втавляешь
SELECT CDTARIFROW, RGOD, RMES, CDLPU, CDOTD, CDPROF, SPECCOD, TARIF, ZARPL, MEDIK, PIT, PITR, KOSV, NAKL, VIDP, NORM, FACT
FROM dbo.TARIFROW
ИResuestLiveуTQuery
MsGuns (2007-07-17 10:18:00) [14]Подобная сугубо "локальная" технология редактирования инф-ции в БД чревата для неискушенного программиста массой непоняток, недоразумений и конфузов.
iXT (2007-07-17 09:58:00) [15]??? :(
А как втавляешь, хотя тут что то с отображением. Попробуй порыться в свойствах DS
Kolan (2007-07-17 09:34:00) [16]А вот если вставить в середине запись и сместиться вниз, то эта нижняя строка исчезнет. При добавлении новой записи она вернётся на прежнее место, а только что вставленое опять исчезнет.
И кроме того все вставленые строки добавляются вниз таблицы в БД.
Kolan (2007-07-17 09:27:00) [17]> Сортировка по ним идет.
Как и где уточнить так ли это?
Используется MSSQL Server 2000
iXT (2007-07-17 09:26:00) [18]Сдается мне, дело в индексах. Сортировка по ним идет.