Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 43
1

Копирование строки из одной таблицы в другую

12.03.2012, 20:03. Показов 7433. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.SpeedButton6Click(Sender: TObject);
var
   Num: SmallInt;
begin
   DM.ADOTable_Korzina.Insert;
   DM.ADOTable_Korzina.Edit;
   for Num := 1 to DM.ADOTable_Nalichie.FieldCount-1 do
   begin
      Dm.ADOTable_Korzina.Fields[Num].Assign(DM.ADOTable_Nalichie.Fields[Num]);
      DM.ADOTable_Korzina:=DM.ADOTable_Nalichie;
      DM.ADOTable_Korzina.Post;
   end;
end;
что собственно не так? по сути должна копировать строку из одной таблицы в другую.. ругается на
Delphi
1
      DM.ADOTable_Korzina:=DM.ADOTable_Nalichie;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2012, 20:03
Ответы с готовыми решениями:

Копирование строки из одной таблицы в другую
Мир всем и привет Как копировать запись из одной таблицы в другую ? Вот у меня получился...

Копирование строки из одной таблицы в другую с изменением значений двух столбцов
Объясню суть проблемы. Не хватает мозгов реализовать задуманное в программном коде, а тему диплома...

Копирование данных из одной таблицы в другую в пределах одной базы. Не работает счетчик
Делаю копирование данных из одной таблицы в другую в пределах одной базы. procedure...

Копирование из одной таблицы БД в другую
Добрый день. Подскажите, пожалуйста как можно копирывать данные из одной таблицы, в...

10
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
13.03.2012, 02:40 2
А с чего вы решили что должно быть то что вы думаете?
То что вы это
Delphi
1
DM.ADOTable_Korzina:=DM.ADOTable_Nalichie;
писали с мыслью о
должна копировать строку из одной таблицы в другую
еще не значит что вы именно это написали.
Как..."и я понял что когда я пытаюсь сделать хорошее дело у меня получается сделать плохое".
Вы сами сакральный смысл этой строки кода понимаете?
Вы написали что набору данных таблицы Korzina надо присвоить значение набора данных таблицы Nalichie. Всего набора. Да еще и операции такого рода не возможны в таком виде.
Вам нужно по полям читать значения из одной таблицы и также писать их в другую.
Типа
Delphi
1
2
3
DM.ADOTable_Korzina.Edit;
Dm.ADOTable_Korzina.Fields[Num].Value := DM.ADOTable_Nalichie.Fields[Num].Value;
DM.ADOTable_Korzina.Post;
А зачем вы делаете такую карикатуру
Delphi
1
2
DM.ADOTable_Korzina.Insert;
   DM.ADOTable_Korzina.Edit;
Вы уж определитесь вы редактируете или добавляете в набор.
В общем идите читайте методы работы с БД в делфи. И да компоненты типа Table не рекомендуется использовать. Переходите на использование SQL.
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,554
16.03.2012, 02:03 3
Цитата Сообщение от JuneMelon Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.SpeedButton6Click(Sender: TObject);
var
   Num: SmallInt;
begin
   DM.ADOTable_Korzina.Insert;
   DM.ADOTable_Korzina.Edit;
   for Num := 1 to DM.ADOTable_Nalichie.FieldCount-1 do
   begin
      Dm.ADOTable_Korzina.Fields[Num].Assign(DM.ADOTable_Nalichie.Fields[Num]);
      DM.ADOTable_Korzina:=DM.ADOTable_Nalichie;
      DM.ADOTable_Korzina.Post;
   end;
end;
что собственно не так? по сути должна копировать строку из одной таблицы в другую.. ругается на
Delphi
1
      DM.ADOTable_Korzina:=DM.ADOTable_Nalichie;
======================== Копирование строки =====================

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
ADOTable2.insert;
ADOTable2.FieldByName('Фамилия').AsString :=ADOTable1.FieldByName('Фамилия').AsString;
ADOTable2.FieldByName('Имя').AsString :=ADOTable1.FieldByName('Имя').AsString;
ADOTable2.FieldByName('Отчество').AsString :=ADOTable1.FieldByName('Отчество').AsString;
ADOTable2.Post;
end;
Вложения
Тип файла: rar копировать записи из таблицы.rar (326.7 Кб, 223 просмотров)
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 13
13.06.2015, 01:14 4
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
ADOTable2.insert;
ADOTable2.FieldByName('Фамилия').AsString :=ADOTable1.FieldByName('Фамилия').AsString;
ADOTable2.FieldByName('Имя').AsString :=ADOTable1.FieldByName('Имя').AsString;
ADOTable2.FieldByName('Отчество').AsString :=ADOTable1.FieldByName('Отчество').AsString;
ADOTable2.Post;
end;
Этот код добавляет только первую запись из таблицы в другую таблицу. А как добавить все записи ?
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,554
13.06.2015, 01:24 5
Цитата Сообщение от Darien8 Посмотреть сообщение
А как добавить все записи ?
http://www.w3schools.com/sql/s... select.asp
1)
T-SQL
1
2
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
2)
T-SQL
1
2
3
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';
так понтно ?
0
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
13.06.2015, 01:34 6
Цитата Сообщение от xxbesoxx Посмотреть сообщение
так понтно ?
Не поймет. Ему код нужен.
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 13
13.06.2015, 01:35 7
Может не по теме. Возникла ошибка. Добавляется все хорошо из одной таблицы в другую. А вот если первую таблицу дополняешь и пытаешься снова через кнопку добавить записи вылезает ошибка. Или удаляешь одну запись и снова пытаешься вставить

Код
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Insert into test (Familiya,Name,Otchestvo)');
ADOQuery1.SQL.Add('select Familiya, Name, Otchestvo ');
ADOQuery1.SQL.Add('from users');
ADOQuery1.ExecSQL;
DBGrid2.DataSource.DataSet.Active:=false;
DBGrid2.DataSource.DataSet.Active:=true;
http://rghost.ru/8Y9LWBPyT/image.png
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,554
13.06.2015, 01:42 8
Цитата Сообщение от Darien8 Посмотреть сообщение
вылезает ошибка.
если так ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
With ADOQuery1 do
begin
    SQL.Clear;
    SQL.Add('Insert into test (Familiya,Name,Otchestvo)');
    SQL.Add('select Familiya, Name, Otchestvo from users');
    ExecSQL;
end;
 With ADOQuery1 do
 begin
  SQL.Text := 'select * from test';
  open;
 end;
 
end;
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 13
13.06.2015, 01:55 9
если так ?
Та же ошибка. А при пустой таблице совсем не добавляет значения
0
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
13.06.2015, 02:07 10
Цитата Сообщение от Darien8 Посмотреть сообщение
Та же ошибка. А при пустой таблице совсем не добавляет значения
Свой код покажи.
0
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,554
13.06.2015, 02:09 11
Цитата Сообщение от Darien8 Посмотреть сообщение
не добавляет значения
Смотрите в примере
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.КопироватьClick(Sender: TObject);
begin
  With ADOQuery2 do
  begin
      SQL.Clear;
      SQL.Add('Insert into Tab2 (Familia,Imia, Otchestvo)');
      SQL.Add('select Familia,Imia, Otchestvo from Tab1 ');
      ExecSQL;
  end;
   With ADOQuery2 do
   begin
    SQL.Text := ' select * from Tab2 ';
    open;
   end;
end;
 
end.
Вложения
Тип файла: rar T1_копировать.rar (2.82 Мб, 83 просмотров)
0
13.06.2015, 02:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2015, 02:09
Помогаю со студенческими работами здесь

Копирование данных из одной таблицы в другую
хочу копировать из одной таблицы на другой. Но дает ошибку.. procedure TForm1.Button1Click(Sender:...

Копирование данных из одной таблицы в другую
procedure TForm10.sTreeViewEx1Change(Sender: TObject; Node: TTreeNode); begin if...

Копирование всех данных из одной таблицы в другую
необходимо скопировать все данные из одной таблицы в другую. Таблица с данными - это расчетная...

Копирование записей из одной таблицы в другую по условию
Всем привет. Подскажите, как копировать из одной таблицы в другую данные, которые соответствуют...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru