Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

DBGrid   Найти похожие ветки 

 
AlekseyB   (2008-06-24 08:59) [0]

Подскажите плиз. Есть грид, где отображаются данные, необходимо в грид вносить данные и чтобы они сохранялись. Когда меняю несколько записей то сохраняет нормально, хотя не всегда, а если одну запись меняю, то совсем не сохраняет. Не подскажите в чем проблема ?


 
engine ©   (2008-06-24 09:01) [1]

ИМХО, в знаниях


 
AlekseyB   (2008-06-24 09:05) [2]


> ИМХО, в знаниях

в том то и дело что знаний маловато, поэтому и советуюсь !!


 
engine ©   (2008-06-24 09:09) [3]

Во первых в гриде данных нет, и там их сохранить нельзя.
Во вторых, как меняешь, как сохраняешь не понятно.


 
AlekseyB   (2008-06-24 09:12) [4]


> Во первых в гриде данных нет, и там их сохранить нельзя.

Я написал, что отображаются данные , а не хранятся


 
Sergey13 ©   (2008-06-24 09:15) [5]

> [4] AlekseyB   (24.06.08 09:12)

Программа вообще твоя или ты видишь ее только на экране соседа?


 
AlekseyB   (2008-06-24 09:23) [6]

Моя программа, но тока начал писать, так подскажите как мне сделать, чтобы при занесении данных в грид, они сохранялись в базе. Спасибо заранее


 
engine ©   (2008-06-24 09:28) [7]

Что за СУБД, какие компоненты доступа используешь?


 
AlekseyB   (2008-06-24 09:29) [8]


> Что за СУБД, какие компоненты доступа используешь?

MS SQL, компоненты ADO


 
korneley ©   (2008-06-24 09:39) [9]


> AlekseyB   (24.06.08 08:59) 

Много зависит от того, откуда и как берутся данные для отображения. База какая? Механизм извлечения данных? Используемые инструменты? Поподробнее, и тогда, возможно, будет о чём говорить.


 
AlekseyB   (2008-06-24 09:46) [10]


> Много зависит от того, откуда и как берутся данные для отображения.
>  База какая? Механизм извлечения данных? Используемые инструменты?
>  Поподробнее, и тогда, возможно, будет о чём говорить.

Есть база, в ней есть табличка !!! При помощи грида данные из этой таблички отображаются в гриде. есть пустые поля в этой табличке, вот и необходимо заполнить данными, которые мы вносим непосредственно в грид. т.е. при добавлении этих данных, я вижу внесенные изменения, но до тех пор, пока не обновится грид !!!


 
engine ©   (2008-06-24 09:50) [11]

Ну теперь всё понятно. Такие ошибки чаще всего происходят в 17-ой строке


 
Sergey13 ©   (2008-06-24 09:50) [12]

> [0] AlekseyB   (24.06.08 08:59)
> хотя не всегда

Типа по пятницам не сохраняет? Или другие какие закономерности есть?

> [8] AlekseyB   (24.06.08 09:29)
> компоненты ADO

Все сразу или какие то конкретные?

По ходу нет фиксации изменений в датасете и/или в БД.


 
Юрий Зотов ©   (2008-06-24 09:55) [13]

> Когда меняю несколько записей то сохраняет нормально, хотя не всегда, а
> если одну запись меняю, то совсем не сохраняет

Можно предположить вот что.

Когда меняется несколько записей, то идет навигация по датасету и автоматом посылается Post. Данные сохраняются (возможно, кроме последней записи).

Когда меняется одна запись, навигации нет и Post автоматом не посылается. Видимо, Post не посылается и кодом - вот данные и не сохраняются.


 
korneley ©   (2008-06-24 10:07) [14]


> Юрий Зотов ©   (24.06.08 09:55) [13]

Присоединяюсь. Хотя, по идее, при нажатии "Enter" в гриде, Post должен быть и без навигации. Но кодом, с проверкой, что датасет в эдит/инсерт моде - надёжнее :)


 
Ega23 ©   (2008-06-24 10:28) [15]

> Подскажите плиз. Есть грид, где отображаются данные,

Блин. Начал читать. Так порадовался - новичок наконец-то знает, что в гриде нет никаких данных.

> необходимо в грид вносить данные и чтобы они сохранялись.

Однако нет, всё в порядке. Мир, к сожалению, не изменился.


 
korneley ©   (2008-06-24 10:42) [16]


> Ega23 ©   (24.06.08 10:28) [15]

Так это ж как... акыны, что ли. Что вижу, о том и пою. Если буковки/циферьки набираются в гриде, то и данные там же. А за всё остальное ответственный уже назначен: П.А.С. :))


 
AlekseyB   (2008-06-24 10:46) [17]

ну мало ли как выразился, ну ошибся, что теперь ? Не в этом проблема !!! Проблема в том, что данные не сохраняются в базе при внесении их в грид


 
Ega23 ©   (2008-06-24 10:51) [18]


> Не в этом проблема !!! Проблема в том, что данные не сохраняются
> в базе при внесении их в грид


Проблема как раз в непонимании того, что в DBGrid нет никаких данных. Данные - в TDataSet. И вносишь ты их не в грид, а в ДатаСет. И для того, чтобы записи "появились" в базе, их нужно из датасета туда отправить. Как - это уже отдельная песня, есть много всяческих способов.


 
Плохиш ©   (2008-06-24 10:53) [19]


> AlekseyB   (24.06.08 10:46) [17]
> Проблема в том, что данные не сохраняются в базе при внесении
> их в грид

Хм, а у меня сохраняются, вот ведь как удивительно, правда...


 
Галинка   (2008-06-24 11:25) [20]

добавить либо кнопку типа "Update" (в которой и производить апдэйт с сохранением всех исправленных записей, там вроде у скула есть для этого спец модификатор типа rsEdited). Либо повесить это действие на Leave грида. Но UPDATE TABLE обязательно делать надо.


 
lewka-serdceed   (2008-06-24 13:45) [21]

Ты вообще используешь кнопки навигации по БД? Tnavigator попробуй


 
Ega23 ©   (2008-06-24 13:50) [22]


> Ты вообще используешь кнопки навигации по БД? Tnavigator
> попробуй


Фу, какая гадость...


 
korneley ©   (2008-06-24 14:02) [23]

Вот пользую EMS InterBase & FireBird Manager. Почти во всём нравится (может, потому, что слаще морковки ничего не пробовал :), но как я ненавижу эти УБОГИЕ DBNAVIGATOR - ы !!!


 
Sergey13 ©   (2008-06-24 14:03) [24]

> [22] Ega23 ©   (24.06.08 13:50)

А чего его многие так не любят? Нормальный компонент. А для новичков так вообще очень даже хороший. ИМХО.


 
korneley ©   (2008-06-24 14:07) [25]


> Sergey13 ©   (24.06.08 14:03) [24]

Не спорю, для D1, он может и был прорывом, но сейчас, я даже редактирование "данных в гриде" считаю "мове тон". Как следствие - "скрипач не нужен" (с)


 
stas ©   (2008-06-24 14:13) [26]

AlekseyB   (24.06.08 08:59)  

1. СУБД
2. Компоненты доступа
3. Какие меняли настройки компонентов?


 
Sergey13 ©   (2008-06-24 14:13) [27]

> [25] korneley ©   (24.06.08 14:07)
> я даже редактирование "данных в гриде" считаю "мове тон"

Чем же оно так плохо?


 
korneley ©   (2008-06-24 14:23) [28]


> Sergey13 ©   (24.06.08 14:13) [27]

Тем, что считаю это наследием экселевского (или суперкальковского) подхода к интерфейсу. Там - да, в моём приложении - нет. Меняешь/вставляешь/удаляешь запись - получаешь форму. Пользователь хоть знает, что делает :) Ну ладно... иногда можно.  :))) Но, иногда. Всё, естественно, имхо


 
MsGuns ©   (2008-06-24 14:54) [29]

При "гридной" корректировке по умолчанию используется то механизм "отсылки" изменений на сервер, который используется применяемыми компонентами, с учетом тех свойств этих компонентов, которые влияют на кэширование изменений и на старт и подтверждение (откатов) транзакций. Вам, очевидно, следует или научиться управлять явно пересылкой изменений серверу или отказаться от "гридной" технологии или поменять датасет, например на TClientDataSet, у кторого целый арсенал методов и свойств для этого.
В любом случае надо потратить время чтобы разобраться и навсегда забыть о подобных проблемах


 
Ega23 ©   (2008-06-24 15:11) [30]


> В любом случае надо потратить время чтобы разобраться и
> навсегда забыть о подобных проблемах


Проблема-то как раз в другом. Есть, например, справочная таблица. Всего с двумя десятками записей, но с 15 столбцами. Для корректного редактирования мне их ВСЕ 15 надо в грид тащщить. А по-идее, достаточно трёх-пяти, т.к. все остальные - сугубо служебные.

Ну и всяческие многопользовательские доступы - тоже с гридом тяжело решаются.
Наконец, это просто неудобно (назовите мне хоть одну программу того же Microsoft, где в гриде надо что-то редактировать. Ёксель не в счёт.)


 
Sergey13 ©   (2008-06-24 15:17) [31]

> [30] Ega23 ©   (24.06.08 15:11)
> Наконец, это просто неудобно (назовите мне хоть одну программу
> того же Microsoft, где в гриде надо что-то редактировать

Редактирование структуры таблицы в ЕМ.


 
Галинка   (2008-06-24 15:18) [32]

Ega23 ©   (24.06.08 15:11) [30]

Все зависит от сути базы. И от сути таблицы конкретной.


 
Sergey13 ©   (2008-06-24 15:24) [33]

> [30] Ega23 ©   (24.06.08 15:11)
> Для корректного редактирования мне их ВСЕ 15 надо в грид тащщить.
Это как? Если редактируются 3 - их и тащи. Плюс ПК в датасете.


 
Ega23 ©   (2008-06-24 15:33) [34]


> Редактирование структуры таблицы в ЕМ.


Ну хорошо. Но насколько часто ты этим пользуешься? Я, например, раза 3-4 за 8 лет. Вообще EM использую для просмотра всякой фигни, типа DeadLocks и т.п., а также для настройки Backup|Restore и прочих джобов. Всё остальное - через QA.


> Это как? Если редактируются 3 - их и тащи. Плюс ПК в датасете.


Каждый раз новую форму создавать? Или что?
Потом, например проверки. Есть у тебя уникальный индекс на столбец. Понятно, что при вставке повторяющегося значения тебя обматерит. А где обматерит? На каком поле? Какое конкретное исключение ты будешь ловить?
А с формой - всё гораздо проще...

И понять редактирование в гриде я могу только в одном случае: когда сидит девочка на телефоне и принимает заказ на 100 товаров из 10000. Вот в такой ситуации - это удобно. Но геммороя при этом - ужас.


 
Sergey13 ©   (2008-06-24 15:38) [35]

> [34] Ega23 ©   (24.06.08 15:33)
> Ну хорошо. Но насколько часто ты этим пользуешься?

Ты просил пример - я привел. Просто прямо перед ответом этим занимался. 8-)

> Каждый раз новую форму создавать? Или что?
А без грида все по другому? Как вообще ловля исключений пересекается с визуализацией данных? Я тебя наверное не понимаю.


 
Галинка   (2008-06-24 15:41) [36]


> Ega23 ©   (24.06.08 15:33) [34]
>
>
> И понять редактирование в гриде я могу только в одном случае:
>  когда сидит девочка на телефоне и принимает заказ на 100
> товаров из 10000. Вот в такой ситуации - это удобно. Но
> геммороя при этом - ужас.
>


вот тут как раз грид совсем не оптимален. Потому как в базе будет несколько таблиц со связями многие ко многим (на вскидку будет справочников только штуки 3: тара, катугория товара, состояние склада). Как это все в грид загнать?


 
Ega23 ©   (2008-06-24 15:44) [37]


> Как это все в грид загнать?


Это уже другой вопрос.


> А без грида все по другому? Как вообще ловля исключений
> пересекается с визуализацией данных? Я тебя наверное не
> понимаю.


Наверное. Это дело лучше в реале обсуждать, так запаримсо.


 
Галинка   (2008-06-24 15:45) [38]

хотя вот у нас например есть тулза для кассового окружения, в которой можно типа накладных создавать, которые потом уже на кассе оплачиваются. Написана кстати на дельфе ))) Там именно грид применен. Но там реально вводишь только наименование товара, вся остальная фигня берется из базы по связям.


 
Sergey13 ©   (2008-06-24 16:02) [39]

> [37] Ega23 ©   (24.06.08 15:44)

ИМХО все-таки наверное не зря Борланд таскает свой грид из версии в версию. Да еще и сторонние разработчики соревнуются в написании своих гридов, причем очень даже недешевых порой. Да и в том же мелкомягком аксесе, если мне не изменяет память, грид так-же присутствует.
Применять/не применять - все зависит от задачи.

> Это дело лучше в реале обсуждать, так запаримсо.

Это точно. 8-)


 
Галинка   (2008-06-24 16:07) [40]

Sergey13 ©   (24.06.08 16:02) [39]

самое инетерсное, что не только борланд, но и мелкие тоже таскают. Но формы как-то конкретнее что ли. Незря же в том же аксесе мона формы свои дизайнить. Да и Oracle Forms.



Страницы: 1 2 3 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.009 c
2-1214361504
apic
2008-06-25 06:38
2008.07.27
GetFocus()


2-1214410294
Анониммм
2008-06-25 20:11
2008.07.27
Как загрузить иконку файла?


2-1214219491
Евро2008
2008-06-23 15:11
2008.07.27
Повернуть на 90 градусов


15-1213271856
SKIPtr
2008-06-12 15:57
2008.07.27
подключение сети между виртуальными компьюторами


2-1214419508
Igor23
2008-06-25 22:45
2008.07.27
CMD+ShellExecute





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский