![]() |
|
|
![]()
|
|
| sssssss7 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
MySQL--->ADOQuery --> DBGrid
Попробую точнее сформулировать задачу на простом примере: есть 4 табл. 1. таб. stud (табл. студенты с полями id и fio (Ф.И.О)) id_stud, fio 1 Иванов Иван Иваныч 2 Сидоров Сидор Сидорович 3 Петров Петр Петрович 2. таб. ocenka (табл. с видами оценки) id_ocenka, ocenka 1 удов. 2 хор. 3 отл. 3. таб. predmet (таб. с видами предметов) id_predmet, predmet 1 Математика 2 Русский язык 3 Литература 4. таб. jurnal (таб. обьеденяющая все остальные таб.) id_jurnal, id_stud, id_predmet, id_ocenka 1 1 1 1 2 1 2 Как видно из примера выше у Иванова нет оценки по русскому языку.. Вопрос.. я вывожу в dbgrid следующий запрос
в dbgridе появляются все предметы Иванова и их оценки.. Как мне добавить в dbgrid оценку Иванову например удв и чтоб она сохранилась в таблице jurnal по id из таблице ocenka или изменить существующию оценку...??? выскакивают ошибки: не удается найти строку для обновления. Некоторые значения могли быть изменены со временнем его чтения.. Это сообщение отредактировал(а) sssssss7 - 28.6.2009, 16:38 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
гы похожую тему поднимали раньше , но на аксессе ))
запрос типа select не может менять даные как и добавлять , для изменения записи нужно юзать update для вставки нового запрос типа insert имхо менять можно если открываешь таблицу , типа ADOTable... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sssssss7 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) sssssss7 - 28.6.2009, 23:00 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Вау! Чем конкретно? Добавить можно так, если без запросов:
Вот мы в текущей записи AdoTable поставили в поле 'ocenka' значение 'неуд'. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Я не говорю, что ты не прав, это я типа прикалываюсь над незнаниям (?) вроде как простейших операторов SQL. Это сообщение отредактировал(а) Данкинг - 29.6.2009, 00:19 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| sssssss7 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
почему меня поставили в тупик ответом ))) потому что вроде все подробно описал а мне отвечают что запрос типа select не может менять даные как и добавлять ... я разве спрашивал может ли select добавлять или менять AdoTable.Edit; AdoTable.FieldValues['ocenka']:='неуд'; AdoTable.Post; это и так все понятно... я пользую MySQL--->ADOQuery --> DataSource-->!!!!!! DBGrid !!!!! и вопрос был как мне добавить в ячейку dbgrid (т.е. я руками туда вписываю значение а оно потом сохраняется в обьеденяющей таблице под id ) оценку Иванову например удв и чтоб она сохранилась в таблице jurnal по id из таблице ocenka (чтоб более подробно понять проблему посмотрите первый пост.. там даже все по таблицам расписано) или изменить существующию оценку...??? возможно нужно в каком то событии dbgrida прописать запрос добавления самому может еще как то вот и спрашиваю как правильно по науке)) Это сообщение отредактировал(а) sssssss7 - 29.6.2009, 02:20 |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
ну ты и шутник ... испужал то мя как смысл этого действия? то что внесется в бдгрид, там и останится а мне кажется что данные нужно вносить в саму бд!
вот имхо где первый правильный вопрос -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sssssss7 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
если dbgrid вывести запросом одну таблицу например select * from stud то в самом гриде можно спокойно менять и добовлять данные при чем они все атоматом сохраняются в базе... еще добавлю.. что еслиб поле ocenka в таб. jurnal было б прямым т.е не id из таблицы ocenka.. то в запросе достаточно прописать id_jurnal и всё гуд.. но т.к лучше для каждой сущности делать отдельную таблицу я вывел ocenka в отдельную таблицу.. но теперь не могу добавить значение((( как быть не знаю((( Это сообщение отредактировал(а) sssssss7 - 29.6.2009, 13:47 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
это имхо неправильно !
зачем усложнять себе жизнь надо было PS по моему правильно делать показать записи значит select , хочешь обновить update , а то что работает с select , то где то можно нарватся на такой косяк... потом будешь долго думать почему раньше работало а сейчас нет , но если любишь трудности , играйся на вариантом , который ты описал ИМХО -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sssssss7 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
Romikgy спасибо за совет.. Может кто по теме что знает?? очень надо... второй день уже бьюсь((
Это сообщение отредактировал(а) sssssss7 - 29.6.2009, 15:26 |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
sssssss7, повторите, пожалуйста свой вопрос еще раз более четко.
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Уже не раз обсуждалось почему и когда можно/нельзя редактировать данные через грид напрямую. Добавлено через 31 секунду
Не надо биться, просто поищи на форуме. Добавлено через 3 минуты и 51 секунду http://forum.vingrad.ru/forum/topic-258221.html читай всю тему внимательно |
|||
|
||||
| sssssss7 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 3.2.2009 Репутация: нет Всего: нет |
Akella.. спасибо.. искал чесно)) но пропустил)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |