Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Редактирование данных в DBGrid, как? дайте примеры, плиз... 
:(
    Опции темы
Sett
  Дата 27.12.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



Приветствую всех!
У меня вопрос?

Подскажите пожалуйста как можно вытящить нужную информацию из DBGrid из нужного индакса и ячейки и отобразить в Edit и чтоб в Edit'e, я мог после изменения текста сохранить обратно в тоже место откуда взял изначально, спомощью простого нажатия кнопки. Сохранить

Например:

Форма началась

DBGrid
Фамилия---Имя---Отчество---Возраст---Вес (кг)
--------|----------|----------|-------------|------------|
-----Edit1---Edit2---Edit3------Edit4------Edit5

в Edit'ах пишу все необходимые изменения.

и простоая кнопка: Сохранить изменеия

Форма закончилась

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

Заранее очень благодарен!

Это сообщение отредактировал(а) Sett - 27.12.2004, 13:59
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 27.12.2004, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: нет
Всего: 112



Загружай данные не из DBGrid, а из TTable, TQuery или еще что используешь.
К примеру, помещаем в Edit1 поле FIO третьей записи:
Код
Table1.RecNo := 3;
Edit1.Text := Table1.FieldByName('FIO').AsString;


Запись из TEdit в TTable - аналогично, только наоборот (вешай на событие OnClick у TButton):
Код
Table1.RecNo := 3;
Table1.FieldByName('FIO').AsString := Edit1.Text;


Если нужно работать с выбранной записью, то RecNo устанавливать не надо. Да и можно будет использовать TDBEdit...


--------------------
С уважением, г-н Посол.
PM   Вверх
Sett
Дата 27.12.2004, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



p0s0l здесь, если я правильно понимаю укзано явное поле но если в таблице данные будут добавлятся или удаляться. как мне редоктировать данные которые я например выделил т.е.: выделяю строку жму кнопку редактировать, изменяю жму кнопку сохранить

Можно поподробней
PM MAIL WWW ICQ   Вверх
Bes
Дата 27.12.2004, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Через что работаешь?
PM MAIL   Вверх
Vit
Дата 27.12.2004, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Sett - тебе сюда:

http://forum.vingrad.ru/index.php?showtopic=3954

Твои ошибки такие:

1) DBGrid - не содержит ни одного бита информации! Это окошко через которое ты заглядываешь в TTable или TQuery. Как в окне своего дома ты видишь парк, так и через DBGrid ты видишь TTable или TQuery, как в стекле своего окна нет ничего о твоём парке, так и в DBGrid нет никаких данных. Поэтому если нужно что-то взять то брать надо из TTable или TQuery

2) Если что-то меняешь, то сначала переводят таблицу в режим редактирования:

Table1.edit;

потом меняют значение нужного поля:

Table1.fieldbyname('MyFieldName').asString:='какая-то строка';

Потом сохраняют изменния в таблице:

Table1.post;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Bes
Дата 28.12.2004, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2Vit:
К слову: вроде бы здесь затрагивалась тема о редактировании данных в ДБГриде с использованием АДО и АДОКвери. Т.е. чтобы было как в Акцессе - меняешь значение в ячейке - оно меняется в базе. "Прозрачный" интерфейс. Оказывается с этим возникает масса проблем. Кстати я так и не решил эту задачу, может чего подскажешь?
PM MAIL   Вверх
Vit
Дата 28.12.2004, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Bes - во-первых открой тему для обсужденя темы, во-вторых огласите список проблем


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Bes
Дата 28.12.2004, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2Vit: ОК! Просто думал, ответ на слуху. Кстати про открытые темы: открыл про dbf ч/з ADO.
PM MAIL   Вверх
Akella
Дата 30.12.2004, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Можно редактировать данные прямо в сетке, если она продключена к TTable

Код

 if not ((ssAlt in Shift) or (ssCtrl in Shift) or (ssShift in Shift)) and (key=vk_return) then begin
   try
    if (Table1.State = dsEdit) or (Table1.State = dsInsert) then begin
      Table1.Post;
      Table1.FlushBuffers;
    end;
   except
    windows.Beep(1000,500);
    Table1.Cancel;
   end;
   key:=0;
 end;


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

SELECT * FROM mytable

и в свойствах TQuery нужно установить свойство RequestLive:=True
ну и, конечно, в свойствах сетки не должно стоять ReadOnly:=True, иначе только для чтения, естевственно, если в сетке создаешь столбы, то у них так же не должно стоять ReadOnly:=True

дерзай... smile
PM MAIL   Вверх
Sett
Дата 30.12.2004, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



Всех С Новым Годом!

А как можно сделать так чтобы информация в сетке отображалась в Edit'ах ?

Я ни как не пойму!

Дайте пример пожалуйста.
PM MAIL WWW ICQ   Вверх
Bes
Дата 31.12.2004, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Для этого нужны не эдиты, а ДБЕдиты у которых в св-ве DataSource указываешь твой датасурс, а в св-ве DataField поле, поторое должно отображаться в этом ДБЕдите и все.
PM MAIL   Вверх
Sett
Дата 1.1.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 20.12.2004
Где: Подольск

Репутация: нет
Всего: нет



Привет всем!

А есть какие нибудь компоненты для работы с базами данных

Подскажите где их можно найти

Спасибо
PM MAIL WWW ICQ   Вверх
Vit
Дата 3.1.2005, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Sett - тебе сюда: http://forum.vingrad.ru/index.php?showtopic=3954

Прочитай, разберись потом будешь спрашивать, или по ходу дела если чего не понятно.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.