Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 16:48   #11
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
их всех копирую и вставляю заново
чего чего?
eval вне форума Ответить с цитированием
Старый 09.04.2013, 16:49   #12
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

procedure TVedomostForm.Button2Click(Sender: TObject);
var
sem,spec:integer;
i,j:integer;
begin
sem := 0;
//Выбор предметов для прикрепления к переведенной группе
sem := StrToInt(Label7.Caption) +1;
DM.Dop.Active := false;
DM.Dop.SQL.Text := 'Select Предмет,Диплом From Предмет Where Специальность = '''+
Label6.Caption+''' and Семестр = '''+IntToStr(sem)+'''';
DM.Dop.Active := true;
//Считываение id с грида выбор студентов и перезапись с новым значением семестра
for str := 1 to AdvStringGrid1.RowCount-2 do
begin
DM.QVed.Active := false;
DM.QVed.SQL.Text := 'Select * From Перекрестный Where id = '+
AdvStringGrid1.Cells[0,str];
DM.QVed.Active := true;
DM.Spisok.Insert;
DM.Spisok.FieldByName('Фамилия').As String := DM.QVed.FieldByName('Фамилия').AsSt ring;
DM.Spisok.FieldByName('Имя').AsStri ng := DM.QVed.FieldByName('Имя').AsString ;
DM.Spisok.FieldByName('Отчество').A sString := DM.QVed.FieldByName('Отчество').AsS tring;
DM.Spisok.FieldByName('Специальност ь').AsString := DM.QVed.FieldByName('Специальность' ).AsString;
DM.Spisok.FieldByName('Семестр').As String := IntToStr(StrToInt(DM.QVed.FieldByNa me('Семестр').AsString) + 1);
DM.Spisok.FieldByName('Группа').AsS tring := DM.QVed.FieldByName('Группа').AsStr ing;
DM.Spisok.Post;
DM.QVed.Active := true;
DM.Dop.First;
while not DM.Dop.Eof do
begin
DM.Uspev.Insert;
DM.Uspev.FieldByName('Предмет').AsS tring := DM.Dop.FieldByName('Предмет').AsStr ing;
DM.Uspev.FieldByName('Диплом').AsSt ring := DM.Dop.FieldByName('Диплом').AsStri ng;
DM.Uspev.Post;
DM.Dop.Next;
end;
end;
{//выбор id студентов для прикрепления предметов
DM.QVed.Active := false;
DM.QVed.SQL.Text := 'Select id From Перекрестный Where Специальность = '''+
Label6.Caption+''' and Семестр = '''+IntToStr(sem)+'''';
DM.QVed.Active := true;
DM.QVed.First;
for i := 0 to 2 do
begin
AdvStringGrid3.Cells[0,i] := DM.QVed.FieldByName('id').AsString;
DM.QVed.Next;
end;}
{
//Приикрепление предметов к переведенным студентам
DM.QVed.First;
while not DM.QVed.Eof do
begin
DM.Dop.First;
while not DM.Dop.Eof do
begin
DM.Dop2.Active := false;
DM.Dop2.SQL.Text := 'Update Успеваемость Set Предмет = '+
DM.Dop.FieldByName('Предмет').AsStr ing+' and Диплом = '+
DM.Dop.FieldByName('Диплом').AsStri ng+' where Код_студента = '+
DM.QVed.FieldByName('id').AsString;
DM.Dop2.ExecSQL;
DM.Dop.Next;
end;
DM.QVed.Next;
end;}
end;
не знаю при добавлении делаю вот так вот конечно ему непонятно куда он добавляет а вот при добавлении просто студента в группу такое работает
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 16:52   #13
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

так как потом я буду делать выброску в ексель или создание отчетов по группе на каком то семестре мне нужно хранить их в базе 4 года а после 4 года уже удалять из базы что бы на протяжении 4 лет можно было что то сформировать типо отчета
я знаю что это повторение данных но в правильной структуризации таблиц в бд я не очень смыслю пока что мало опыта
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 16:53   #14
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

Код:
procedure TVedomostForm.Button2Click(Sender: TObject);
var
sem,spec:integer;
i,j:integer;
begin
sem := 0;
//Выбор предметов для прикрепления к переведенной группе
sem := StrToInt(Label7.Caption) +1;
DM.Dop.Active := false;
DM.Dop.SQL.Text := 'Select Предмет,Диплом From Предмет Where Специальность = '''+
Label6.Caption+''' and Семестр = '''+IntToStr(sem)+'''';
DM.Dop.Active := true;
//Считываение id с грида выбор студентов и перезапись с новым значением семестра
for str := 1 to AdvStringGrid1.RowCount-2 do
begin
DM.QVed.Active := false;
DM.QVed.SQL.Text := 'Select * From Перекрестный Where id = '+
AdvStringGrid1.Cells[0,str];
DM.QVed.Active := true;
DM.Spisok.Insert;
DM.Spisok.FieldByName('Фамилия').AsString := DM.QVed.FieldByName('Фамилия').AsString;
DM.Spisok.FieldByName('Имя').AsString := DM.QVed.FieldByName('Имя').AsString;
DM.Spisok.FieldByName('Отчество').AsString := DM.QVed.FieldByName('Отчество').AsString;
DM.Spisok.FieldByName('Специальность').AsString := DM.QVed.FieldByName('Специальность').AsString;
DM.Spisok.FieldByName('Семестр').AsString := IntToStr(StrToInt(DM.QVed.FieldByName('Семестр').AsString) + 1);
DM.Spisok.FieldByName('Группа').AsString := DM.QVed.FieldByName('Группа').AsString;
DM.Spisok.Post;
DM.QVed.Active := true;
//запись предметов в успеваемость
DM.Dop.First;
while not DM.Dop.Eof do
begin
  DM.Uspev.Insert;
  DM.Uspev.FieldByName('Предмет').AsString := DM.Dop.FieldByName('Предмет').AsString;
  DM.Uspev.FieldByName('Диплом').AsString := DM.Dop.FieldByName('Диплом').AsString;
  DM.Uspev.Post;
  DM.Dop.Next;
end;
end;
вот код почище



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.04.2013 в 21:34.
sashkap вне форума Ответить с цитированием
Старый 09.04.2013, 16:59   #15
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

это что за простыня никому не нужного кода? да еще без форматирования
eval вне форума Ответить с цитированием
Старый 09.04.2013, 18:58   #16
sashkap
Новичок
Джуниор
 
Регистрация: 09.04.2013
Сообщений: 10
По умолчанию

ребят хоть убейте не могу понять
у каждого студента есть своя успеваемость мне в определенную успеваемость нужно вставить предметы как мне это сделать если insert into с условием не работает
sashkap вне форума Ответить с цитированием
Старый 10.04.2013, 10:11   #17
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
как мне это сделать если insert into с условием не работает
Цитата:
Сообщение от Yurk@ Посмотреть сообщение
там можно применять WHERE
Код:
DM.Dop.SQL.Text := 'UPDATE таблица1 SET zn = ''йцу'' WHERE name = ''в''';
Цитата:
Сообщение от Yurk@ Посмотреть сообщение
если делать обновление записи - тогда нужно в условии указывать какие именно записи обновлять
тебе UPDATE нужен
еще раз повторить ?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организовать текстовый файл f, состоящий из N строк. Организовать замену символов в файле. "Старый" символ и "новый" символ запраш Richik123 Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2012 16:28
Организовать текстовый файл f, состоящий из N строк. Организовать замену символов в файле. "Старый" символ и "новый" символ запра Richik123 Паскаль, Turbo Pascal, PascalABC.NET 0 31.05.2012 17:32
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51