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

Вниз

Редактирование данных в DBGrid в случае заполнения DBGrid изQuerу   Найти похожие ветки 

 
Maridena ©   (2009-08-06 21:52) [0]

Привет всем.
У меня наверное несколько глупый вопрос, но я действительно не понимаю. Пожалуйста, помогите.
В общем есть несколько таблиц, из которых собирается вьюшка, которую я отображаю в DBGrid.
Меня интересует как можно меня данные в DBGrid?
Ни в самом гриде ни в dbedit и прочих связанных с query компонентами редактирование не получается. Почитала - видимо потому, что вьюшка собирается из нескольких таблиц.
Но как мне все таки отредактировать данные-то?
Самое замечательное, если у кого-то есть просто кусок кода с примером - надеюсь разобраться по нему сама.
Нашла тут на форуме похожий вопрос, вроде как решается с помощью UpdateSQL, но примера не нашла.
Если можно решить другим способом - подскажите, плз!
Спасибо.


 
Игорь Шевченко ©   (2009-08-06 21:56) [1]


> вроде как решается с помощью UpdateSQL, но примера не нашла


у UpdateSQL есть свойства InsertSQL,ModifySQL,DeleteSQL.

Запросы, указанные в этих свойствах, выполняются при DataSet.Insert/Post, DataSet.Edit/Post, DataSet.Delete

Пример кода есть в Program Files\Borland\BDS\...\Demos\Db\CachedUpd\*.*


 
Maridena ©   (2009-08-06 22:02) [2]

Спасибо за такой быстрый ответ.
У меня, к сожалению нет таких примеров, как по ссылкам, указанным тобой.
Program Files\Borland\BDS\...\Demos\Db\CachedUpd\*.
У меня C:\Program Files\CodeGear\RAD Studio\6.0, и образцов кода нет :(
Я в первую очередь туда полезла. В Delphi 7 было, но ее сейчас нет.

У меня проблема-то не в том, чтобы ВСТАВИТЬ данные в таблицу и т.п.
Это бы я сделала.
НО мне надо чтобы пользователь ВИДЕЛ, что он что-то там меняет в связанном с Query компоненте. А компонент этого не дает делать, потому что Query связано с неск.таблицами сразу и данные в компоненте нередактируемые.
Как человеку ввести то, что он хочет-то и видеть это?
Можешь пример кинуть? Если нетрудно, конечно.


 
Anatoly Podgoretsky ©   (2009-08-06 22:15) [3]

> Maridena  (06.08.2009 22:02:02)  [2]

Попробуй сделать поиск по диску на имя Demos


 
Maridena ©   (2009-08-06 22:42) [4]

Спасибо, Анатолий - хорошая идея.
Жаль только, что единственное, что нашлось - \RAD Studio\6.0\Demos\database\projects\samples\  и там про блэкфиш и про датаснап. Больше ничего нет.
Просто видимо дельфи без примеров установили :(
Может кто-нибудь просто пример сюда копи-пастнет?

Можно, конечно, сделанную выборку сохранять в таблицу, а ее вытаскивать в DBGrid и уже тогда редактировать, но это, по-моему, не лучшая идея. :)


 
Игорь Шевченко ©   (2009-08-06 22:49) [5]


> Как человеку ввести то, что он хочет-то и видеть это?


Refresh сделать после Post, он увидит

Пример сделать не могу - база не озвучена


 
Maridena ©   (2009-08-06 22:54) [6]

Игорь, я наверное, невнятно выражаюсь, извините - сейчас у меня основная проблема в том, что человек НЕ МОЖЕТ РЕДАКТИРОВАТЬ компоненты, связанные с Query.
Есть грид, в котором данные из query (выборка из нескольких таблиц).
К этому же query привязаны несколько компонентов типа dbedit, значения которых естественно меняются при движении пользователя по записям в гриде.
Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти же dbedit"ы и видеть то, что он вводит?


 
Maridena ©   (2009-08-06 22:57) [7]

Да, по поводу базы данных - absolute database. (не знаю, можно ли тут ссылки кидать на сайт производителя, потому не добавляю)


 
Игорь Шевченко ©   (2009-08-06 23:09) [8]


> Есть грид, в котором данные из query (выборка из нескольких
> таблиц).
> К этому же query привязаны несколько компонентов типа dbedit,
>  значения которых естественно меняются при движении пользователя
> по записям в гриде.
> Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти
> же dbedit"ы и видеть то, что он вводит?


Выполнить Query.Edit (для пробы присоединить к DataSource dbNavigator - там кнопки есть Add/Edit/Delete)


 
Maridena ©   (2009-08-06 23:18) [9]

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


 
Maridena ©   (2009-08-06 23:19) [10]

Может правда надо сохранять во временной таблице и ее редактировать в гриде и через dbedit"ы? Но мне кажется, что это как-то глупо...


 
Anatoly Podgoretsky ©   (2009-08-06 23:37) [11]

У тебя не редактируемый набор данных, на мой взгляд лучшее решение - это редактирование в форме, данные получать из таблиц напрямую и запись обратно по таблицам, в транзакции. Грид же использовать только для навигации.


 
Игорь Шевченко ©   (2009-08-06 23:38) [12]

Maridena ©   (06.08.09 23:18) [9]

У Query надо указать CachedUpdates = true и UpdateObject = UpdateSQL, где написать тексты запросов на вставку/обновление/удаление


 
Игорь Шевченко ©   (2009-08-06 23:39) [13]

Anatoly Podgoretsky ©   (06.08.09 23:37) [11]

Да без разницы


 
Maridena ©   (2009-08-06 23:40) [14]

Да уж... я думала есть какой-то способ.
Просто пользователю было бы удобнее сразу смотреть и в гриде и в dbedit"ах данные и тут же их редактировать.
Хорошо, как решение, наверное, можно использовать доп.форму для редактирования текущей записи по клику на ней пользователем.
Жалко, что нельзя редактировать он зе флай.
(но я еще подумаю :))

Спасибо всем.


 
Anatoly Podgoretsky ©   (2009-08-06 23:42) [15]

> Игорь Шевченко  (06.08.2009 23:38:12)  [12]

Игорь это AbsoluteDB, а у него свои TAbsTable/TAbsQuery


 
Maridena ©   (2009-08-06 23:43) [16]

Да, к сожалению с абсолютом кэшед апдейтс не проходит, но спасибо все равно :)


 
Anatoly Podgoretsky ©   (2009-08-07 00:02) [17]

У AbsDB своя справка и свои Демос, очень приличные.
Попытаться можно сделать или через TClicentDataset, или через InMemoryTable - небольшие примеры есть в Демос. Но это за счет довольно серьезных усложнений и стоит подумать стоит ли. А так AbsDB очень мощная СУБД и позволяет делать невероятные вещи, например ДБ только из одного ехе файла, без файла БД или ReadOnly DB на CD


 
Maridena ©   (2009-08-07 00:12) [18]

Инмемори тэйбл - да, я уже как раз смотрю, спасибо, что надоумили меня выше в примеры посмотреть :)


 
turbouser ©   (2009-08-07 00:12) [19]


> Maridena ©

Вьюхи (Views) могут (имхо, обязаны!!) быть не редактируемы.
Надо делать все по человечески...


 
Maridena ©   (2009-08-07 00:16) [20]

Ты прав, турбо.  Вопрос в том, что делать-то ? :)
Сами ВЬЮХИ никто и не собирался редактировать - я об этом в самом начале написала.
Надо редактировать данные в таблицах.
Вопрос был как сделать так, чтобы юзеру было просто и удобно и в тоже время мне не пришлось бы городить огород.
Я уже решила - буду делать через доп.формы, как было предложено.
Сорри, если неточно донесла с самого начала.

Тему можно закрывать - всем спасибо !


 
Игорь Шевченко ©   (2009-08-07 00:17) [21]

Anatoly Podgoretsky ©   (06.08.09 23:42) [15]

Тогда извиняюсь


 
Anatoly Podgoretsky ©   (2009-08-07 07:27) [22]

> Игорь Шевченко  (07.08.2009 00:17:21)  [21]

У него свой наследник TDataset (обосновано), вот это и потребовало других наследников.


 
имя   (2009-09-17 14:24) [23]

Удалено модератором



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

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

Наверх





Память: 0.5 MB
Время: 0.006 c
2-1253861450
MonoLife
2009-09-25 10:50
2009.11.08
Уменьшение размера картинки


2-1253891798
dplz
2009-09-25 19:16
2009.11.08
Сохранении в .ini или в реестр всех переменных/параметров...


2-1253853092
Alexandra
2009-09-25 08:31
2009.11.08
Import в Word


2-1253624052
faiwer
2009-09-22 16:54
2009.11.08
Trace Into


2-1253798864
Fr
2009-09-24 17:27
2009.11.08
Закрытие формы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский