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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 15:59   #1
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию Перенос данных из строки одной таблицы БД в другую БД

Здравствуйте!) Имеется БД, состоящая из 2 таблиц. Для каждой таблицы в программе созданы формы с отображением их.
Необходимо из 1 таблицы, чтобы при нажатии на кнопку, данные из этой строки перемещались в другую таблицу БД и после вся строка удалялась из 1 таблицы.
Например, 1 таблица - это оставленные заявки на участие, далее менеджер рассматривает заявку и принимает её, данные заносятся в другую таблицу. Ниже приведены картинки...



Помогите пожалуйста с кодом. Перерыл форумы, но ничего конкретного не нашёл (.
Optigood вне форума Ответить с цитированием
Старый 11.05.2010, 16:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты пользуешся SQL?
Если да то методами INSERT - DELETE вполне проблема разрешима, и естесственно нужно знать структуру твоей таблицы. Как хотя бы идентифицировать строку, которую нужно перенести. У нее есть первичный ключ или какой-нить уникальный код?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2010, 16:26   #3
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Stilet, пользуюсь Access'ом... Первичные ключи есть, скрытые id'ы.
Необходимо именно по установленному курсору перенести фамилию во 2 таблицу и всё.

На 1 форме компоненты: ADOConnection. ADOTable, DataSource.
На 2 форме: ADOConnecton, ADOQuery, DataSource.

Последний раз редактировалось Optigood; 11.05.2010 в 16:29.
Optigood вне форума Ответить с цитированием
Старый 11.05.2010, 17:18   #4
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Код:
 adocommand1.commandtext:=cmdText;
 adocommand1.commandtext:='insert into <имя_другой_таблицы>(<поле1>, <поле2>, <поле3>....)'+#13+
 'values(adotable1.filedbyname('<поле1>').value, adotable1.filedbyname('<поле2>').value, adotable1.filedbyname('<поле3>').value....)';
 adocommand1.execute;
 adocommand1.commandtext:='delete <имя_первой_таблицы> where  id=<id_записи>';
 adocommand1.execute;
это как пример с использованием SQL-я.
можно попробовать и без него. добавь на 1 форму ещё один adotable и свяжи его с нужной тебе таблицей
Код:
 adotable1.edit;
 adotable2.edit;
 adotable2.fieldbyname('<поле1>').value:=adotable1.fieldbyname(<поле1>).value;
 adotable2.fieldbyname('<поле2>').value:=adotable1.fieldbyname(<поле2>).value;
 adotable2.fieldbyname('<поле3>').value:=adotable1.fieldbyname(<поле3>).value;
..................................
 adotable2.post;
 adotable1.delete;
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 11.05.2010, 17:19   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну... Короче я бы написал запросы:
insert into таблица2 select * from таблица1 where таблица1.id=а тут твой скрытый ID выделенной строки (его можно через FieldByName('ID') получить).
Ну и удаление
delete from таблица1 where таблица1.id=...
Это все по одиночке выполнить через ADOQuery
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2010, 19:44   #6
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Что-то не помогло ...
Optigood вне форума Ответить с цитированием
Старый 12.05.2010, 10:32   #7
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

что именно не помогло?
код в студию.
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 12.05.2010, 12:59   #8
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Код:
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Form3.show;

adotable1.edit;
adotable2.edit;
adotable2.fieldbyname('Спортсмен').value:=adotable1.fieldbyname('Surname').value;
//adotable2.fieldbyname('<поле2>').value:=adotable1.fieldbyname(<поле2>).value;
//adotable2.fieldbyname('<поле3>').value:=adotable1.fieldbyname(<поле3>).value;

adotable2.post;
adotable1.delete;

end;



После того, как таблицу делаешь активной, в поле спортсмен появляется почему-то его id.


Ну и прога при запуске косячит...
Optigood вне форума Ответить с цитированием
Старый 12.05.2010, 12:59   #9
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Optigood вне форума Ответить с цитированием
Старый 12.05.2010, 13:44   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
adotable2.edit;
Ну во первых, тут скорее insert нужен или append а не edit.
А во вторых: я бы это делал не через table а через query написав запрос INSERT... (Как я и предлагал)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос значений из одной таблицы в другую ЕСЛИ+ВПР? 804040 Microsoft Office Excel 2 05.05.2010 14:38
Перенос данных из одной таблицы в другую в Excel Vindima Помощь студентам 2 11.04.2010 19:54
перенос значений из одной базы данных в другую mr.D Microsoft Office Excel 3 16.03.2010 21:11
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57
Перенос данных из одной книги со многих листов в другую gavrylyuk Microsoft Office Excel 34 20.07.2008 21:39