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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 16:06   #1
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию Копирование поля из одной таблицы в другую(ADO)

Здравствуйте.В базах данных я не особо силен.Работу делаю с пом. ADO.
Имеется вот такой код, взял я его с какой то книжки:
При нажатии на кнопке Удалить:

Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
if Application.MessageBox(PChar('Вы действительно хотите удалить запись :'
+DataModule1.ADOTable1DSDesigner.Asstring+' '+DataModule1.ADOTable1DSDesigner2.Asstring
+' '+DataModule1.ADOTable1DSDesigner3.Asstring), 'Внимание!!!',
MB_OKCANCEL)=id_OK then
begin
DataModule1.ADOTable1.Delete;
end;
end;
Но перед удалением мне нужно скопировать удаляемое поле в другую таблицу(напр table_arxiv), а из этой таблицы(напр. table_main) удалить эту запись.
Проблема вроде простая, но я не могу понять, как получить,идентификатор, так чтоли сказать; т.е я не могу объяснить программе, какую имеено запись ему нужно скопировать в table_arxiv, т.к не пойму, где это прописывается.
Работаю с компонентами ADOConnection, ADOTable,DataSource и DBGrid.
Скрин прикладываю для наглядности.
RamireZ вне форума Ответить с цитированием
Старый 17.11.2009, 16:59   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

чо за субд?
может получится все силами триггера сделать на серверной стороне
soleil@mmc вне форума Ответить с цитированием
Старый 17.11.2009, 18:22   #3
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
чо за субд?
может получится все силами триггера сделать на серверной стороне
БД будет распологаться локально, на одном компьютере
RamireZ вне форума Ответить с цитированием
Старый 17.11.2009, 20:02   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как получить,идентификатор
А номер очереди в таблице? Чем не идентификатор?
mihali4 вне форума Ответить с цитированием
Старый 17.11.2009, 22:01   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. Серверная часть в данном случае - это СУБД, а без неё никуда, хоть БД будет и на локальном компьютере. Какая СУБД используется? access, oracle, sql server,...?
2. У ADOTable должно быть событие что-то вроде OnBeforeDelete. Вот там через ADOTable1.FieldByName(...) можно получить значения всех полей таблицы и вставить их в другую таблицу:
Код:
ADOTable2.Append;
ADOTable2.FieldByName('xxx').Value := ADOTable1.FieldByName('xxx').Value;
...
ADOTable2.Post;
pu4koff вне форума Ответить с цитированием
Старый 17.11.2009, 22:48   #6
RamireZ
Студент
Пользователь
 
Аватар для RamireZ
 
Регистрация: 30.05.2008
Сообщений: 61
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
1. Серверная часть в данном случае - это СУБД, а без неё никуда, хоть БД будет и на локальном компьютере. Какая СУБД используется? access, oracle, sql server,...?
2. У ADOTable должно быть событие что-то вроде OnBeforeDelete. Вот там через ADOTable1.FieldByName(...) можно получить значения всех полей таблицы и вставить их в другую таблицу:
Код:
ADOTable2.Append;
ADOTable2.FieldByName('xxx').Value := ADOTable1.FieldByName('xxx').Value;
...
ADOTable2.Post;
Cпасибо, помогло
До этого пытался пользовался такой моделью:
Код:
    ADOTable2.Append;
    ADOTable2.Edit;
    for i:= 0 to ADOTable1.FieldCount-1 do
      ADOTable2.Fields[i]:= ADOTable1.Fields[i];
    ADOTable2.Post;
На это он мне выдавал ошибку на поле, где вводилась дата рождения , что то типа того, что "нельзя совместить типы Ole(str) и Date", хотя у меня там OLE и не пахнет...
RamireZ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных из одной таблицы Paradox в другую Zuzya БД в Delphi 3 16.05.2009 19:11
Копирование записей из одной DBF таблицы в другую ИВэТэшка БД в Delphi 0 20.03.2009 22:37
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27