
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.175] |
![]() |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, я столкнулся со следующей задачей.
Записи DBGrid формируются с помощью sql запроса в query и отображаются в dbgrid. Мне необходимо записать данные из DBGrid в другую таблицу, я думаю лучше через AdoTable. Но чтобы записи в таблице не повторялись. Вот пример: ![]() ![]() DBGZhur.DataSource.DataSet.First; dm.ATUsp.First; for k:=0 to DBGZhur.DataSource.DataSet.FieldCount do begin if (DBGZhur.DataSource.DataSet.Fields.FieldByName('Класс').Asstring = DM.ATUsp.FieldByName('Класс').Asstring) and (DBGZhur.DataSource.DataSet.Fields.FieldByName('Предмет').Asstring = DM.ATUsp.FieldByName('Предмет').Asstring) and (DBGZhur.DataSource.DataSet.Fields.FieldByName('Дата').Asstring = DM.ATUsp.FieldByName('Дата').Asstring) then beep else begin DM.ATUsp.Append; DM.ATUsp.FieldByName('Класс').Asstring:=DBGZhur.DataSource.DataSet.Fields.FieldByName('Класс').Asstring; DM.ATUsp.FieldByName('Предмет').Asstring:=DBGZhur.DataSource.DataSet.Fields.FieldByName('Предмет').Asstring; DM.ATUsp.FieldByName('Дата').Asstring:=DBGZhur.DataSource.DataSet.Fields.FieldByName('Дата').Asstring; end; DM.ATUsp.Next; DBGZhur.DataSource.DataSet.Next; end; DM.ATUsp.Close; DM.ATUsp.Open; Данный программный код записывает данные в таблицу но условие не работают и записи повторяются Буду очень благодарен, если поможете. ![]() |
Сообщ.
#2
,
|
|
|
Цитата telepusik321 @ Не из DBGrid, а из запроса. Грид только отображает результаты.необходимо записать данные из DBGrid в другую таблицу Цитата telepusik321 @ думаю лучше через AdoTable А ещё лучше вот так (процедура для Oracle, ЕМНИП, даже для Акцесса само тело процедуры можно упихать в TADOCommand): ![]() ![]() procedure saveTMPVariants(objID in int) as begin insert into dat_variants (obj_id, kind_name, geoname, src_id) select objID, kind_name, geoname, src_id from tmp_variants tmp order by tmp.v_id; commit; end saveTMPVariants; Теория тут https://technet.microsoft.com/ru-ru/library...sql.105%29.aspx. |
Сообщ.
#3
,
|
|
|
В приведенном программном коде запись в бд уже осуществляется. Проблема лишь в том, что записываются совершенно одинаковые записи. Мне надо подкорректировать условие, чтобы записи в таблице не повторялись. У самого никак не получается((((
|
Сообщ.
#4
,
|
|
|
Для начала - Append() есть, а вместо парного Post() для него ты вызываешь Next() (и оно работает???).
Второе - у тебя есть результаты запроса в каком-то Query. Вот и читай из него, а не из грида. Третье - тыц!. Или забудь про базы данных. Цикл for не для них придуман. |