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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2010, 20:11   #1
Анн
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 18
По умолчанию Генератор заполнения таблиц данными (SQL+Delphi)

Нужно заполнить главную таблицу(заказы) данными из других таблиц на несколько десятков записей, при нажатии на кнопку...Написала программный код, не работает...помогите найти ошибки пожалуйста!!

Схема данных приложена ниже


аа-значение поля ID_client
bb- значение поля ID_sotrud
сс -значение поля ID_Yslygi
dd-сумма
time1,time2- дата приема и выполнения заказа соответственно
Код:
// процедура заказа
 procedure zakaz(time1,time2:string; aa,bb,cc,dd:integer);
  begin
    Datamodule2.ZakazQuery.SQL.Text:='insert into zakazi(data_priema,ID_client,ID_sotrud,ID_Yslygi,Summa,Data_vipolnenia)'
    + 'values('+''''+time1+''''+','+inttostr(aa)+','+inttostr(bb)+','+inttostr(cc)+','+inttostr(dd)+','+inttostr(ee)+','+''''+time2+''''+')';
    Datamodule2.ZakazQuery.ExecSQL;

    Datamodule2.ZakazQuery.SQL.Text:='Update Clienti Inner Join Zakazi on Clienti.ID_Client=Zakazi.ID_Client';
    Datamodule2.ZakazQuery.ExecSQL;

    Datamodule2.ZakazQuery.SQL.Text:='Update Yslygi Inner join Zakazi  On Yslygi.ID_Yslygi=Zakazi.ID_Yslygi';
    Datamodule2.ZakazQuery.ExecSQL;

    Datamodule2.ZakazQuery.SQL.Text:='Update Sotrudniki Inner join Zakazi on Sotrudniki.ID_Sotrud=Zakazi.ID_Sotrud';
    Datamodule2.ZakazQuery.ExecSQL;

  end;

// кнопка заполнить
procedure TForm1.Frame11ToolButton5Click(Sender: TObject);
var i,k,m,n,ki,mi,ni,pr:integer;
tm,fm:tdatetime;
begin
  k:=datamodule2.ClientQuery.RecordCount;
  m:=datamodule2.SotrudQuery.RecordCount;
  n:=datamodule2.YslygQuery.RecordCount;
  for i:=1 to 100 do begin
    tm:=random(40179-36525)+36525; // формирование даты
    fm:=random(40179-36525)+36525;
    ki:=random(k);
    mi:=random(m);
    ni:=random(n);
    Datamodule2.ClientQuery.First;
    Datamodule2.ClientQuery.MoveBy(ki);
    Datamodule2.SotrudQuery.First;
    Datamodule2.SotrudQuery.MoveBy(mi);
    Datamodule2.YslygQuery.First;
    Datamodule2.YslygQuery.MoveBy(ni);
    pr:=random(1000)+1; //формирование суммы
    zakaz(datetostr(tm);
    Datamodule2.ClientQuery.FieldByName('ID_Client').AsInteger;
    Datamodule2.SotrudQuery.FieldByName('ID_Sotrud').AsInteger;
    Datamodule2.YslygQuery.FieldByName('ID_Yslygi').AsInteger;
    Datamodule2.ZakazQuery.FieldByName('Summa').AsInteger;
    zakaz(datetostr(fm);
  end;
end;


прошу не забывать про тег [CОDE]!
Модератор.
Изображения
Тип файла: jpg схема данных.JPG (27.4 Кб, 75 просмотров)

Последний раз редактировалось Serge_Bliznykov; 09.12.2010 в 21:25.
Анн вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц в SQL через Delphi Edelweiss Помощь студентам 1 09.11.2009 12:44
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Run-time загрузка таблиц MS SQL Server в DBGrid Delphi 7 Ketra БД в Delphi 3 21.08.2009 16:31
обмен данными из двух таблиц (одинаковой структуры) но в разных базах Tanuska___:) БД в Delphi 1 26.11.2008 19:41
Процедура заполнения массива. Delphi Alex_2017 Помощь студентам 1 02.06.2008 17:55