Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.05.2017, 13:31
БосМолокосос БосМолокосос вне форума
Прохожий
 
Регистрация: 31.05.2017
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
Сообщение Перенос базы данных Sql на MS access

Все почти заработало но не то было
Код:
ads.Active:=false;
   ads.CommandText:='select * from organs where organs.oname='+quotedstr(orgname.Text);
   ads.Active:=true;
   adc.CommandText:='insert into res_givers values('+quotedstr(ads.Recordset.Fields[0].get_value)+', '+quotedstr(rgfname.Text)+', '+quotedstr(rgnoname.Text)+')';
   adc.Execute
  end;
 peopds.Active:=false;
 peopds.Filtered:=false;
 peopds.CommandText:='select * from resolution where rregnum='+quotedstr(regnum.Text)+' and rregdate>=:date';
peopds.Parameters.ParamByName('date').DataType := ftDate;
peopds.Parameters.ParamByName('date').Value := regdate.Date;
peopds.Active:=true;
 if peopds.RecordCount=0 then
  begin
   ads.Active:=false;
   ads.CommandText:='select * from res_givers, organs where res_givers.rgfname='+quotedstr(rgfname.Text)+' and res_givers.rgnoname='+quotedstr(rgnoname.Text)+' and res_givers.rgorg=organs.oid and organs.oname='+quotedstr(orgname.Text);
   ads.Active:=true;
   adc.CommandText:='insert into resolution values(' + quotedstr(ads.Recordset.Fields[0].get_value())+', '+quotedstr(art.Text)+', '+quotedstr(regnum.Text)+', :date1, :date2, :date3, :time, ' + quotedstr(floattostr(0))+')';
   adc.Parameters.ParamByName('date1').DataType := ftDate;
   adc.Parameters.ParamByName('date1').Value := regdate.Date;
   adc.Parameters.ParamByName('date2').DataType := ftDate;
   adc.Parameters.ParamByName('date2').Value := date.Date;
   adc.Parameters.ParamByName('date3').DataType := ftDate;
   adc.Parameters.ParamByName('date3').Value := todate.Date;
   adc.Parameters.ParamByName('time').DataType := ftTime;
   adc.Parameters.ParamByName('time').Value := totime.Time;
   adc.Execute
  end;
 for i:=1 to peoples.count do
  begin
   rgds.Active:=false;
   rgds.CommandText:='select * from cities where cname='+quotedstr(peoples.p[i].city);
   rgds.Active:=true;
   if rgds.RecordCount=0 then
    begin
     adc.CommandText:='insert into cities values('+quotedstr(peoples.p[i].city)+')';
     adc.Execute;
     rgds.Active:=false;
     rgds.Active:=true
    end;
   ads.active:=false;
   ads.CommandText:='select * from peoples where pfname='+quotedstr(peoples.p[i].fname)+' and pnname='+quotedstr(peoples.p[i].nname)+' and poname='+quotedstr(peoples.p[i].oname)+' and pwasborn='+inttostr(peoples.p[i].ywb);
   ads.active:=true;
   if ads.RecordCount=0 then
    begin
     adc.CommandText:='insert into peoples values('+quotedstr(peoples.p[i].fname)+', '+quotedstr(peoples.p[i].nname)+', '+quotedstr(peoples.p[i].oname)+', '+inttostr(peoples.p[i].ywb)+', '+quotedstr(rgds.Recordset.Fields[0].get_value())+', '+quotedstr(peoples.p[i].adress)+')';
     adc.Execute;
     ads.Active:=false;
     ads.Active:=true
    end;
   kind.Filter:='sname='+quotedstr(peoples.p[i].stat);
   kind.Filtered:=true;
   if kind.RecordCount=0 then
    begin
     adc.CommandText:='insert into stat values('+quotedstr(peoples.p[i].stat)+')';
     adc.Execute;
     kind.Active:=false;
     kind.Active:=true
    end;
   peopds.Active:=false;
   peopds.Active:=true;
   adc.CommandText:='insert into who_why values('+quotedstr(peopds.Recordset.Fields[0].get_value())+', '+quotedstr(ads.Recordset.Fields[0].get_value())+', '+quotedstr(kind.Recordset.Fields[0].get_value())+')';
   adc.Execute;
   kind.Filtered:=false
  end;
 form1.Close
end;
Есть у меня база данных .в запросах insert into values значения Как я понимаю для акссес нужно как то по другому прописывать? ошибка такая(Проект вызвал исключение класса EOleException с сообщением Изменения не были успешно внесены из-за повторящихся значений в индексе,ключевых полях или связях,Измените данные в поле или полях. И вот в бд у меня код стоит счетчик .а после заполнения в программе она выдает ошибку но добавляет в базу .только не по порядку 1,2,3 а в последовательности 0,0,0.
Ответить с цитированием
  #2  
Старый 01.06.2017, 18:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Для инструкции Insert into... надо перечислить поля в которые вы хотите добавить данные:
Код:
 adc.CommandText:='insert into res_givers values('+quotedstr(ads.Recordset.Fields[0].get_value)+', '+quotedstr(rgfname.Text)+', '+quotedstr(rgnoname.Text)+')';
Кроме вас структуры таблиц никто не знает, так-что все в ваших руках.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter