Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и базы данных

Войти
Регистрация
Восстановить пароль
 
 
Dasha18
5 / 5 / 0
Регистрация: 20.04.2013
Сообщений: 95
#1

Редактирование - Delphi БД

18.12.2013, 17:38. Просмотров 641. Ответов 17
Метки нет (Все метки)

Помогите пожалуйста сделать редактирование и добавление! И не могу понять что с поиском почему то не работает
0
Вложения
Тип файла: rar Курс.rar (569.1 Кб, 10 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 17:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Редактирование (Delphi БД):

Редактирование - Delphi БД
Здравствуйте многоуважаемые) У меня есть форма на ней dbgrideh к ней подключен ADOQUERY, кнопка редактировать и есть форма добавления...

Редактирование БД - Delphi БД
Здравствуйте, вот создаю в Delphi 7 проект, нужна работа с базами данных. так вот использую следущие компоненты 1....

Редактирование бд - Delphi БД
Здравствуйте, есть бд, скрин ниже. Вывожу таблицу в dbgrid с помощью такого запроса: SELECT Звернення., Пацієнти.Прізвище, Звернення.,...

Редактирование бд - Delphi БД
Имеется 2 таблицы БД (Firebird) в которых есть общий столбец. Есть форма на которой я поставил комбобокс и грид. Значения комбобокса я беру...

Редактирование БД - Delphi БД
Здравствуйте! Есть база данных (MDF) и Delphi7. Можно ли, чтобы программа редактировала базу и данные загружались из базы в программу.

Редактирование БД - Delphi БД
Здравствуйте! Есть база данных (MDF) и Delphi7. Можно ли, чтобы программа редактировала базу и данные загружались из базы в программу.

17
Waddonator
962 / 638 / 6
Регистрация: 01.11.2012
Сообщений: 1,445
26.12.2013, 19:18 #16
Цитата Сообщение от Dasha18 Посмотреть сообщение
а не подскажете как в истории сохранить?
Точно так же, запросом INSERT. Только смотрите, чтобы типы параметров совпадали с типами полей, т.е. Вы должны заполнять поля не названиями из ComboBox'ов, а кодами (Код должности, код подразделения и номер сотрудника).
Правда существует единственное "Но". На форме frmNov Вы заполнили ComboBox'ы, которые отображают должности и подразделения руками, а следовало бы заполнять их программно из соответствующих таблиц (Например в процессе работы программы добавится какая-то должность или подразделение). Для этого при отображении формы frmNov в событии OnShow мы должны заполнить эти ComboBox'ы. И заполняем не только названия, но и коды. Для это используем процедуру AddItem:

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TfrmNov.FormShow(Sender: TObject);
begin
  DM.ADODol.First;
  ComboBox3.Items.Clear;
  while not DM.ADODol.Eof do
    begin
      ComboBox3.AddItem(DM.ADODol.Fields[1].AsString,Pointer(DM.ADODol.Fields[0].AsInteger));
      DM.ADODol.Next;
    end;
  ComboBox3.ItemIndex:=1;
end;
Аналогично сделайте для подразделений. Теперь запрос на добавление данных в таблицу "История" будет выглядеть следующим образом:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses DateUtils;
...
var NewNumber:integer;
...
      SQL.Text:='SELECT MAX([Номер]) FROM [Сотрудник]';
      Open;
      NewNumber:=Fields[0].AsInteger;
      SQL.Clear;
      SQL.Add('INSERT INTO [История]  ([Номер], [Код подразделения], [Код должности], [Дата начала], [Дата окончания],[Оклад])');
      SQL.Add(' VALUES (:pNom, :pPod,:pDol,:pNa,:pOk,:pOkl)');
      Parameters.ParamByName('pNom').Value:=NewNumber;
      Parameters.ParamByName('pPod').Value:=integer(ComboBox4.Items.Objects[ComboBox4.ItemIndex]);
      Parameters.ParamByName('pDol').Value:=integer(ComboBox3.Items.Objects[ComboBox3.ItemIndex]);
      if DateTimePicker2.Checked then Parameters.ParamByName('pNa').Value:=DateOf(DateTimePicker2.DateTime);
      if DateTimePicker3.Checked then Parameters.ParamByName('pOk').Value:=DateOf(DateTimePicker3.DateTime)
      else Parameters.ParamByName('pOk').Value:=null;
      Parameters.ParamByName('pOkl').Value:=StrToFloatDef(Edit4.Text,0);
      ExecSQL;
И удали все связи в самом Access. Delphi они только мешают.
1
Dasha18
5 / 5 / 0
Регистрация: 20.04.2013
Сообщений: 95
26.12.2013, 20:14  [ТС] #17
вот сделала для изменения почему то не работает
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQL.Text:='SELECT MAX([Номер]) FROM [Сотрудник]';
      Open;
      NewNumber:=Fields[0].AsInteger;
      SQL.Clear;
      SQL.Add('UPDATE История');
      SQL.Add('SET [Код подразделения]=:pPod,[Код должности]=:pDol, [Дата начала]=:pNa,[Дата окончания]=:pOk,[Оклад]=:pOkl');
      SQL.Add('WHERE [Номер]=:pNom');
      Parameters.ParamByName('pNom').Value:=NewNumber;
      Parameters.ParamByName('pPod').Value:=integer(ComboBox4.Items.Objects[ComboBox4.ItemIndex]);
      Parameters.ParamByName('pDol').Value:=integer(ComboBox3.Items.Objects[ComboBox3.ItemIndex]);
      if DateTimePicker2.Checked then
      Parameters.ParamByName('pNa').Value:=DateTimePicker2.DateTime;
      if DateTimePicker3.Checked then
      Parameters.ParamByName('pOk').Value:=DateTimePicker3.DateTime
      else Parameters.ParamByName('pOk').Value:=null;
      Parameters.ParamByName('pOkl').Value:=StrToFloatDef(Edit4.Text,0);
      ExecSQL;
Добавлено через 12 минут
теперь еще и уволить не работает
0
Waddonator
962 / 638 / 6
Регистрация: 01.11.2012
Сообщений: 1,445
27.12.2013, 11:26 #18
Этот код нужен только для вставки нового сотрудника, т.к. Вы добавляете его в таблицу и ему присваивается новый Номер. Этот номер и нужно получить с сервера:
Delphi
1
2
3
SQL.Text:='SELECT MAX([Номер]) FROM [Сотрудник]';
Open;
NewNumber:=Fields[0].AsInteger;
Для запроса Update необходимо брать Номер из ADOSotr:
Delphi
1
NewNumber:=DM.ADOSotr.Fields[0].AsInteger;
0
27.12.2013, 11:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 11:26
Привет! Вот еще темы с ответами:

Редактирование в EXCEL - Delphi БД
Есть программа делающая некие расчеты, потом сохраняет их в Эксель, после заполнения файла Эксель (конец месяца) делает отчет за...

Редактирование по чекбоксу - Delphi БД
Нужна хеп. Необходимо сделать . чтобы по нAжAtию на чибакс в тAблице менялось значение с Un на Close и наоборот. Делал так , однако при...

Редактирование записи в бд - Delphi БД
В общем суть в том что есть две таблицы AUTO_LIST и NEW_TABLE в NEW_TABLE необходимо записать в столбце FIELDNAME -...

Редактирование в dbgrid - Delphi БД
Добрый день ! Столкнулся с такой проблемой: необходимо осуществить редактирование в dbgrid, с помощью edit. Т.е. при нажатии на ячейку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru