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