Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление текста в базу данных, Как из Edit добавить текст в Paradox& 
:(
    Опции темы
FelistA
  Дата 20.7.2005, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Привет всем! Начала делать свою прогу, и столкнулась с такой проблемой. Извините, может кому-то она покажется пустяковой, но я в базах данных ничего не понимаю.
Дело в том, что мне нужно из компонента Edit добавить текст написанный пользователем в базу данных Paradox. А как это делается, даже понятия не имею. Может кто-то знает, помогите пожалуйста. smile
PM MAIL   Вверх
Петрович
Дата 20.7.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



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


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
HAS
Дата 20.7.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Цитата
С нуля, объяснять слишком долго.

согласен, вот моя попытка !
Такс... для начала научимся подключать бд, я тут напишу как это делается, если что не таполучается, отвечу, по мере возможности 1 smile
1. Создаешь базу данных.
2. Вместе с Delphi идет программа BDE Administrator, там нажимаешь Ctr + N, в появившемся диалоговом окне выбираешь Standart, с права ты должна увидеть PATH жмешь на него ишешь свою бд, нажимаешь ок, сохраняешь и выходишь (по умолчанию имя будет STANDART.
3. Запускаешь Delphi.
4. На вкладке Data Access выбираешь компонент DataSource1 и кидаешь его на форму.
5. На вкладке BDE выбираешь компонент Table1 и так же кидаешь его на форму.
6. У компонента Table1 имеется DatabaseName, там выбираешь свою базу данных, в нашем случае STANDART.
7. В TableName надо найти имя своей таблицы.
8. Active=True
9. У DataSource1 DataSet=Table1
10. На вкладке Data Controls выбираешь DBGrid1 и также кидаешь ее на форму.
11. DataSouce=DataSource1
12. Кинь еще кнопочку, например Button1, щелкни 2 раза на кнопке и впиши следующий код

Код

With form1 Do Begin
    Table1.Append;
    If Form2.ShowModal=mrOk Then
      Table1.Post
    Else
      Table1.Cancel
  End


Итак с подключением и отображением бд закончили, теперь нам надо добавить запись, делается это следующим образом:
1. Создаешь еще одну форму.
2. пишешь uses unit1, что бы вторая форма "видела" первую !
3. На вкладке DataControls выбираешь компонент dbedit1, dbedt это тот же edit, но для работы с бд !
4. У dbedit1 имеется DataSource, там выбираешь DataSource1, т.е. DataSource=DataSource1.
5. В DataField ставишь нужную тебе колонку из твое бд.
и на каждую нужную тебе колонку проделываешь этот шаг (4)
6. Размещаешь кнопочку с Caption='Добавить'.
ФУууФ, вот вроде и все, пишу по пямяти, могут быть опечатки, но если что не понятно, спрашивай, отвечу по мере возможности smile
Добавлено @ 22:12
абсолютно согласен с Петрович'ом !
И еще имеется множество статей для начинающих, автор которых Vit, смотри в красную рамочку !

Это сообщение отредактировал(а) HAS - 20.7.2005, 22:13
PM MAIL   Вверх
Akella
Дата 21.7.2005, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Ещё проще
Код

Table1.Append;//для добавления
//или
Table1.Edit;//для редактирования
//и далее присваиваем значения
Table1.FieldByName('MyField').AsString := Edit1.Text;
Table1.FieldByName('MyIntField').AsInteger := 12;
Table1.Post;//сохраняем значения

//можно сбросить кеш, т.е. принудительно записать данные на диск, а пока
//мы этого не сделали, данные хранятся в памяти, пока BDE сам их не сбросит
//но так немного медленне может работать, если машина слабовата
Table1.FlushBuffers;


Абсолютно согласен с Петровичем!
PM MAIL   Вверх
FelistA
Дата 21.7.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Привет. Спасибо тем кто откликнулся. Я сегодня попробую что-нибудь сделать, если что еще напишу.
Но насчет того что я базы не знаю, вы все слишком буквально приняли. Начальные знания я имею, иначе вообще не совалась в это. Но все же спасибо HAS за то, что он все подробно так описал. Спасибо. smile
Книжки я тоже листала. Архангельского брала, правочную Дельфи (слышали о такой?), но почему-то там ничего не нашла.
PM MAIL   Вверх
Vit
Дата 21.7.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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





--------------------
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   Вверх
HAS
Дата 22.7.2005, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



Цитата
Но все же спасибо HAS за то, что он все подробно так описал. Спасибо.

FelistA, да незачто ! smile
PM MAIL   Вверх
FelistA
Дата 22.7.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Возникла следующая проблема, при нажатии на кнопку «Принять», выскакивает следующая ошибка.

Project raised exception class EDataBaseError with message "Table1 Cannot perform this operation on a closed dataset" Process stoped.

Если делать так как сказал HAS форма "виснет", т.е. вообще не реагирует ни на что.

Исходный код:

Код

Form4.Table1.Edit;    
Form4.Table1.FieldByName('Nazvanie').AsString := Edit1.Text;    
Form4.Table1.Post;
Hide;
Form2.Show;


Пробовала добавить:

Код

Form4.Table1.Active:=false;
Form4.Table1.Edit;    
Form4.Table1.FieldByName('Nazvanie').AsString := Edit1.Text;    
Form4.Table1.Post;
Form4.Table1.Active:=true;
Hide;
Form2.Show;


Подскажите, что я деляю не так.

PM MAIL   Вверх
HAS
Дата 22.7.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



smile
я вообще-то редлагал вместо edit'a использовать dbedit
PM MAIL   Вверх
k2s
Дата 23.7.2005, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так вроде-бы должно работать:
Код

Form4.Table1.Active:=True;    
Form4.Table1.Edit;     
Form4.Table1.FieldByName('Nazvanie').AsString := Edit1.Text;     
Form4.Table1.Post;    
Form4.Table1.Active:=False;    


Это сообщение отредактировал(а) k2s - 23.7.2005, 01:23
PM MAIL   Вверх
FelistA
Дата 23.7.2005, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Цитата
я вообще-то редлагал вместо edit'a использовать dbedit

Да я и dbedit использовала, та же ошибка. Хотя я не совсем поняла, что прописать на второй форме для выхода и сохранения. А форма потом перестает реагировать на нажатие кнопок.

PM MAIL   Вверх
HAS
Дата 23.7.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



м...
а ты попробуй кнопочки BitBtn и свойство
Kind=bkOK -> добавить запись
Kind=bkCancel ->отмена действий
PM MAIL   Вверх
Vit
Дата 25.7.2005, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



smile - я ссылку давал на статью для новичков! Потрудитесь прочитать!


--------------------
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   Вверх
FelistA
Дата 25.7.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Цитата
я ссылку давал на статью для новичков! Потрудитесь прочитать!

Спасибо, почитала, и уже давно кстати.
PM MAIL   Вверх
HAS
Дата 26.7.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



выложи код, посмотрим smile
PM MAIL   Вверх
HAS
Дата 26.7.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



FelistA , я тут примерчик для тебя накатал, но прицепить не могу,почему-то smile
напиши свой e-mail я пришлю smile
PM MAIL   Вверх
FelistA
Дата 26.7.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Мой mail [email protected]
Исходный код напишу позже.
Пыталась сделать так как в статье написано, ошибка та же самая. Кто нибудь мне обьяснит что она означает? smile
PM MAIL   Вверх
HAS
Дата 29.7.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



что за ошибка ?
PM MAIL   Вверх
HAS
Дата 29.7.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



FelistA, пример выслал на е-mail smile
PM MAIL   Вверх
Albinos_x
Дата 29.7.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата
Table1 Cannot perform this operation on a closed dataset


переводится:

Цитата
Table1 Не может исполнить это действие на закрытом наборе данных


у тебя

Table1.TableName:='GetCurentDir+имя_БД'; //если в том же каталоге или: + путь от каталога в котором лежит прога

такое есть?
или ищи ошибку в названии поля...

Это сообщение отредактировал(а) Albinos_x - 29.7.2005, 20:38


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
HAS
Дата 1.8.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ing
*


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

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



FelistA , ну как работает ? smile
PM MAIL   Вверх
FelistA
Дата 2.8.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.4.2005
Где: Кирово-Чепецк

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



Бррр... У меня ступор, голова перестала соображать, так бывает когда долго над одним делом работаю, устрою себе недельный перерыв и продолжу. Никто не против??? smile
HAS спасибо за пример посмотрела, вот только базу не может найти. Но это дело поправимое. smile smile
PM MAIL   Вверх
Sett
Дата 7.8.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



FelistA, смотри как я делал, если ты используешь Table1, DataSource и DBGrid1 компоненты.

можно зделать всё очень просто
пример:
Form1.DBGrid1.DataSource.DataSet.Edit; // разрешаем произвести редактирование в таблице
Form1.DBGrid1.DataSource.DataSet.First; // переносим курсор в начало таблицы
Form1.DBGrid1.DataSource.DataSet.Insert; // добавляем пустую ячейку в которую добавим свой текст
Form1.DBGrid1.DataSource.DataSet.Edit; // подтверждаем редактирование повторно.
Form1.DBGrid1.DataSource.DataSet.Fields[0].Text:=Edit1.Text; // добавляешь текст из Edit1.Text
Form1.DBGrid1.DataSource.DataSet.Fields[1].Text:=Label1.Caption; // или добавляешь текст из Label1.Caption
Form1.DBGrid1.DataSource.DataSet.Fields[3].Text:=Form1.Caption; // или добавляешь текст из Form1.Caption нет разницы
Form1.DBGrid1.DataSource.DataSet.Post; // подтверждаешь и сохраняешь все внесёные изменения.

Обрати внимание на Fields[0], филдс может быть и с другой цифрой цифра ознчает номер поля, куда вносится текст:
Fields[0], Fields[1], Fields[2], Fields[3], Fields[4], для каждого грубо говоря Edit1.Text свой филдс
код ставишь под кнопку и всё, проще не бывает.

только не забудь!

в Form1.Create добавить
Table1.Open;

PM MAIL WWW ICQ   Вверх
Петрович
Дата 8.8.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Sett @ 8.8.2005, 00:30)
можно зделать всё очень просто

А можно еще проще smile. Не надо делать лишних действий. У Sett, первые четыре строки, это полная белиберда! Поясню:
Цитата(Sett @ 8.8.2005, 00:30)
Form1.DBGrid1.DataSource.DataSet.Edit; // разрешаем произвести редактирование в таблице
Form1.DBGrid1.DataSource.DataSet.First; // переносим курсор в начало таблицы
Form1.DBGrid1.DataSource.DataSet.Insert; // добавляем пустую ячейку в которую добавим свой текст
Form1.DBGrid1.DataSource.DataSet.Edit; // подтверждаем редактирование повторно.
Form1.DBGrid1.DataSource.DataSet.Fields[0].Text:=Edit1.Text; // добавляешь текст из Edit1.Text
Form1.DBGrid1.DataSource.DataSet.Fields[1].Text:=Label1.Caption; // или добавляешь текст из Label1.Caption
Form1.DBGrid1.DataSource.DataSet.Fields[3].Text:=Form1.Caption; // или добавляешь текст из Form1.Caption нет разницы
Form1.DBGrid1.DataSource.DataSet.Post; // подтверждаешь и сохраняешь все внесёные изменения.

1. После First (строка 2), датасет переведенный в режим редактирования строкой 1, автоматически переключится в режим просмотра. Отсюда, первая строка бессмысленна.
2. First (строка 2) не нужен. Поскольку в реляционных БД понятие порядок записей отсутствует, то и вставка записи (строка 3) может производиться в любое место, не обазательно в начало.
3. После Edit (строка 4), датасет переведенный в режим вставки строкой 3, автоматически переключится в режим реадктирования текущей записи, а то и вообще даст Exception.

И еще. Обращение к полям по индексу (Fields[0], Fields[1], Fields[2], Fields[3], Fields[4], ...) это дурной тон, который может принести проблемы. Например, если в таблице изменится порядок и состав полей, то придется лазить по всему тексту программы и изменять индексы. Да и запутаться легко. Лучше либо обращаться по именам полей:
Код

Form1.DBGrid1.DataSource.DataSet.Append; // Переключаем датасет в режим добавления записи
Form1.DBGrid1.DataSource.DataSet.FieldByName('FieldEdit').AsString:=Edit1.Text; // добавляешь текст из Edit1.Text
Form1.DBGrid1.DataSource.DataSet.FieldByName('FieldLabel').AsString:=Label1.Caption; // или добавляешь текст из Label1.Caption
Form1.DBGrid1.DataSource.DataSet.FieldByName('FieldCaption').AsString:=Form1.Caption; // или добавляешь текст из Form1.Caption нет разницы
Form1.DBGrid1.DataSource.DataSet.Post; // подтверждаешь и сохраняешь все внесёные изменения.[/quote]

Либо обращаться к объектам полей созданным во время дизайна. Последнее даже лучше, поскольку как минимум будет быстрее.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Veniamin
Дата 22.4.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите и мне пожалуйста. Пишу приложение на Delphi для работы с базой в Access, соединение с базой через ADO. Добавление/редактирование записей в главной таблице и которая отображается реализовано след.образом: есть главная форма, на ней по кнопке вызывается форма для добавления/редактирования уже имеющейся записи. На этой форме есть Edit-ы и возле каждого кнопка для вызова соответствующего справочника и выбора из него нужной записи.  Код добавления записи по вышеприведённым примерам работает. Вот мой код для кнопки добавить:

Код

procedure TFormModifyData.ButtonAddClick(Sender: TObject);
begin
  {Проверяем все ли необходимые поля заполнены}
  if (EditTelefon.Text='') or
     (EditKabinet.Text='') or
     (EditStatus.Text='') or
     (EditSysplat.Text='') or
     (EditProc.Text='') or
     (EditPamat.Text='') or
     (EditSetkart.Text='') or
     (EditZhdisk.Text='') or
     (EditVideo.Text='') or
     (EditPrivod.Text='') or
     (EditOS.Text='') or
     (EditspecPO.Text='') or
     (EditoficP.Text='')    
     {если нет то выходим из процедуры с помощью Exit}
  then
    begin
      ShowMessage('Заполнены не все поля ');
      Exit;
    end;

  try
    DM.ADOConnection1.BeginTrans;
    DM.MainTable.Insert;
    DM.MainTable.FieldByName('телефон').AsString:=EditTelefon.Text;
    DM.MainTable.FieldByName('кабинет').AsString:=EditKabinet.Text;
    DM.MainTable.FieldByName('статус').AsString:=EditStatus.Text;
    DM.MainTable.FieldByName('системная плата').AsString:=EditSysplat.Text;
    DM.MainTable.FieldByName('процессор').AsString:=EditProc.Text;
    DM.MainTable.FieldByName('память').AsString:=EditPamat.Text;
    DM.MainTable.FieldByName('сетевая карта').AsString:=EditSetkart.Text;
    DM.MainTable.FieldByName('жёсткий диск').AsString:=EditZhdisk.Text;
    DM.MainTable.FieldByName('видеокарта').AsString:=EditVideo.Text;
    DM.MainTable.FieldByName('оптический привод').AsString:=EditPrivod.Text;
    DM.MainTable.FieldByName('операционная система').AsString:=EditOS.Text;
    DM.MainTable.FieldByName('спецПО').AsString:=EditspecPO.Text;
    DM.MainTable.FieldByName('офисный пакет программ').AsString:=EditoficP.Text;
    DM.MainTable.Post;
    FormModifyData.Close;
    DM.ADOConnection1.CommitTrans;
  except
    DM.ADOConnection1.RollbackTrans;
    ShowMessage('Невозможно выполнить. Повторите');
  end;
end;


Программу делал по книге, в Delphi новичок, прошу пожалуйста подсказать/помочь. Как можно реализовать редактирование записи. DBNavigator-ом устанавливаем курсор на записи необходимой для редактирования, затем вызывается кнопкой на главной форме "редактировать" форма для добавления/редактирования. Как сделать так, чтобы в Edit-ах на этой форме отображались данные текущей записи в таблице и чтоб их можно было редактировать (как это реализовано у меня путём выбора записей из справочников)? Если бы писал на SQL 2000, то можно в SQL-е сделать хранимые процедуры на SQL языке, потом в Delphi в DataModule их вызывать и вообщем есть код для этого в книге. Но есть ли такая возможность, если база в Access, а не в SQL 2000? Или как это можно сделать по-другому, к примеру процедура не вызвывается с сервера SQL, а уже хранится в приложении Delphi?  Аналогично интересует вопрос удаления записи.

p.s. Как отображать текущие данные в форме и редактировать их в ней разобрался сам, осталось с удалением решить.

Это сообщение отредактировал(а) Veniamin - 22.4.2008, 16:07
PM MAIL   Вверх
Akella
Дата 23.4.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Veniamin @  22.4.2008,  15:28 Найти цитируемый пост)
Как можно реализовать редактирование записи.



Код

на Form1 ложишь эдиты и 2 кнопки Ок и Отмена

создаёшь форму во время выполнения програмы юзер жмёт кнопочку или делает двойной щелчёк по ДБГриду

Form1 := TForm1.crate(self);
далее заполняешь эдиты из полей датасета

далее по нажатию на кнопку ОК
If Form1.ShowModal = mrOk then begin
  вызываешь НЕ Append, а Edit

    DM.MainTable.FieldByName('телефон').AsString:=EditTelefon.Text;
    DM.MainTable.FieldByName('кабинет').AsString:=EditKabinet.Text;
    DM.MainTable.FieldByName('статус').AsString:=EditStatus.Text;
    DM.MainTable.FieldByName('системная плата').AsString:=EditSysplat.Text;
    DM.MainTable.FieldByName('процессор').AsString:=EditProc.Text;

подтверждаешь
end else begin
откачиваешь

end;

FreeAndNil(Form1);


Добавлено через 1 минуту и 5 секунд
Цитата(Veniamin @  22.4.2008,  15:28 Найти цитируемый пост)
Аналогично интересует вопрос удаления записи.

Код

DataSet.Delete

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1610 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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