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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 11:53   #1
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию Перенос записи из одной таблицы в другую используя sql

Добрый день!
Никак не могу понять где у меня в программе ошибка. Значит есть две таблицы. Одна заполнена данными, а другая пустая. Есть компонент Edit1 в который нужно ввести значение одного из полей, которое находится в столбце "Артикул" заполненной таблицы. После это при нажатии на кнопку вся строка, найденная по введенному значению, должна переместиться в пустую таблицу. Код как-то странно работает, вроде при нажатии на кнопку добавляет, но это видно только при повторном запуске программы.
Исходник программы вложен.
Вложения
Тип файла: rar proga.rar (550.0 Кб, 30 просмотров)
X_ALONE_X вне форума Ответить с цитированием
Старый 06.03.2013, 17:10   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

если изменения видны только после перезапуска проги, то видимо нужно попросту переподключить DataSource, то бишь обновить набор данный.
p.s. код не смотрел.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 07.03.2013, 01:11   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Ну во первых советую поля в базе сделать англ. а уже в программе их отображение Label написать русскими.
Для отображения как и написал предыдущий автор вам нужно перезапустить таблицу где хранятся данные.

П.С. Весь проект не открывал...
Dozent вне форума Ответить с цитированием
Старый 07.03.2013, 01:49   #4
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию

А как её можно перезапусть, чтобы данные появились? А то что то до меня никак не дойдёт, как это сделать.
X_ALONE_X вне форума Ответить с цитированием
Старый 07.03.2013, 09:00   #5
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

а как ты её запускаешь? Чтобы изначально были видны данные?

Последний раз редактировалось Dozent; 07.03.2013 в 10:53.
Dozent вне форума Ответить с цитированием
Старый 07.03.2013, 09:51   #6
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Закрыть - открыть
superedward вне форума Ответить с цитированием
Старый 07.03.2013, 11:13   #7
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию

Есть код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   try
        form1.ADOQuery1.SQL.Clear;
        form1.ADOQuery1.SQL.Add('INSERT INTO ассотименткорзина SELECT * FROM  ассортимент WHERE ассортимент.артикул LIKE'''+Edit1.Text+'''');
        form1.ADOQuery1.ExecSQL;
        form1.ADOQuery2.SQL.Clear;
        form1.ADOQuery2.SQL.Add('SELECT * FROM ассотименткорзина');
        form1.ADOQuery2.Active:=True;
    except
        on e:Exception do
end;

end;
На форме у меня один АDOConnection соединенный с базой, два ADOTable с подключенными таблицами, Два DataSource Dataset выставлен на первую и вторую таблицу, Два Grid, в них вроде отображаются, И два Query, у них в свойстве ConnecnionString выбрана данная база данных, в свойстве dataset Выбран DataSource2, Но когда пытаюсь поставить галочку Activate у Query1 выходит ошибка:

ADOQuery1: CommandText does not return a result set

Всё равно, никак не пойму, почему данные добавляются только после второго запуска.
X_ALONE_X вне форума Ответить с цитированием
Старый 07.03.2013, 13:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
И два Query, у них в свойстве ConnecnionString выбрана данная база данных, в свойстве dataset Выбран DataSource2,
Это неверно! Должно быть или одно или другое.
а ещё лучше - сотрите ОБА!
Я рекомендую Вам в ваших Query стереть и ConnectionString и DataSource
и в поле Connection выбрать ваш ADOConnection.
Тогда вся связь с базой будет происходить через него!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2013, 01:45   #9
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию

Свойсва DataSource и ConnectionString у ADOQuery1 и ADOQuery2 очистил, оставил свойство Connection c подключённым компонентом ADOConnection. Ситуация не изменилась, записи добавленные в таблицу видно только после второго запуска программы.
X_ALONE_X вне форума Ответить с цитированием
Старый 08.03.2013, 13:15   #10
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
ADOTable.Active := false;
ADOTable.Active := true;
обновит набор данных.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос из одной таблицы БД в другую WishHunter Помощь студентам 9 21.02.2013 08:15
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Перенос данных из одной таблицы в другую в Delphi PinGsama БД в Delphi 4 30.05.2011 04:52
Перенос данных из одной таблицы в другую D.O.G БД в Delphi 3 07.10.2010 12:23
перенос данных из одной таблицы в другую peq Microsoft Office Excel 5 28.08.2010 08:16