Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизСНОВА INSERT Найти похожие ветки
← →
Elafor (2010-01-21 09:44) [0]Добрый день. Я знаю что уже много тем было по запросам, но чего то толи до меня не доходит, то ли я чего то не правильно делаю...
(Эт все в Access 2003)Необходимо из имеющийся таблицы DBGrid1(Список товаров(Название товара, цена за ед товара, количество товара)) пренести выбранные записи в таблицу DBGrid2(Заказ(Название товара, цена за ед товара, количество товара, Заказываемое количество, цена)).
Я так понял просто перенести данные как из одного stringgrida в другой не получится(если такой способ имеется, то желательно узнать его)
Пробовал через запрос приведенный в одной из тем -
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(" INSERT INTO Table1 (Field1) ");
ADOQuery1.SQL.Add(" VALUES ("+Edit1.Text+")");
ADOQuery1.Open;
BookName.Refresh;
DBGrid1.Repaint;
//MsgBox(Edit1.Text);
end;
Ничего не получилось
Вопросы:
1. Возможно ли как то осуществить перенос данных из одного DBGrida в другой?
2. Как написать SQL запрос INSERT(Перенос записей(не всех) из таблицы Список продуктов в таблицу Заказ) для нескольких полей.
Сразу благодарю всех кто поможет.
← →
Elafor (2010-01-21 09:47) [1]А немного ошибся вот этот код пробовал -
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("INSERT INTO Table1 (Field1) VALUES (:pfield1)");
ADOQuery1.Parameters.ParamByName("pfield1").Value := Edit1.Text;
ADOQuery1.ExecSQL;
end;
← →
KilkennyCat © (2010-01-21 09:49) [2]
> как из одного stringgrida
> из одного DBGrida
это разные компоненты.
> DBGrid1.Repaint;
это нафиг не нужно, ибо все неверно, а именно: в dbgride данных нет, они в dataset, оперировать нужно с ним, с таблицами, с чем угодно но не с гридом (с такими целями).
← →
KilkennyCat © (2010-01-21 09:51) [3]и еще: когда говорится о таблице, то говорится о таблице, а не о DBGride.
← →
Elafor (2010-01-21 09:57) [4]а как тогда оперировать с dataset чтоб передавать данные из одной таблицы в другую(я просто тока 3 день с этим пытаюсь разобраться, а сроки уже сильно поджимают:( )
← →
Сергей М. © (2010-01-21 10:12) [5]> Elafor
Access допускает запросы на вставку такого вида:
INSERT INTO TargetTable(TargetField)
SELECT SourceField FROM SourceTable
Подготовь его по образу и подобию [1] и выполни - по идее должно работать.
← →
Anatoly Podgoretsky © (2010-01-21 10:26) [6]
> 1. Возможно ли как то осуществить перенос данных из одного
> DBGrida в другой?
В DBGrid нет данных
← →
Anatoly Podgoretsky © (2010-01-21 10:27) [7]Какой еще ADOQuery1.Open;
Выбросил бы ты подобру, поздорову этот ADOQuery, замени на AdoCommand
← →
Elafor (2010-01-21 10:42) [8]
> Anatoly Podgoretsky
А в AdoCommand можно делать запросы которые параметры будут брать из Edit"ов?
← →
Sergey13 © (2010-01-21 10:58) [9]> [4] Elafor (21.01.10 09:57)
> а сроки уже сильно поджимают:( )
Неужели заказчик требует готовую систему для торговли?
8-)
> [0] Elafor (21.01.10 09:44)
> DBGrid1(Список товаров(Название товара, цена за ед товара, количество товара))
> DBGrid2(Заказ(Название товара, цена за ед товара, количество товара, Заказываемое количество, цена)).
ИМХО по любому двойку поставят. Хоть напишешь хоть не напишешь.
← →
Elafor (2010-01-21 11:08) [10]
> Sergey13
Заказчик - Преподаватель(Я в Базах особо не когда не разбирался, а препод в программирование не чем помочь не может, ибо преподает Субд)
Задание звучало так - создать тока иллюзию работающей системы.
Иллюзия была сделана, но с БД соприкасалась тока в плане заимствования данных из таблиц.
Видимо у нас с преподом разные понятия о иллюзии - и теперь необходимо чтоб прога еще и сохраняла данные в таблицу. вот из за этого образовался камень придкновения.
З.Ы. Сессия уже 2ю неделю идет, а курсовой, собственно без проги, так и нет
← →
Игорь Шевченко © (2010-01-21 11:09) [11]ну а мы-то тут причем, если ты ни в базах, ни в программировании ?
← →
Anatoly Podgoretsky © (2010-01-21 11:09) [12]
> ИМХО по любому двойку поставят. Хоть напишешь хоть не напишешь.
Я думаю, все таки альтернативу предложат, вместо института.
← →
Elafor (2010-01-21 11:18) [13]Ну люди извините, просто очень не хочется альтернатив, и я же тока учусь, а все преподы посылают к преподу по СУБД, а он дамой, потому что программированием не занимается.
← →
Elafor (2010-01-21 11:18) [14]*домой
← →
Sergey13 © (2010-01-21 11:20) [15]> [10] Elafor (21.01.10 11:08)
> Задание звучало так - создать тока иллюзию работающей системы.
Да ладно врать то?
Написал бы прямо: весь семестр пил пиво и зависал по клубам - помогите разобраться. А то препод в программировании ничего не понимает потому что СУБД-шник.
← →
Elafor (2010-01-21 11:28) [16]Я пиво и спиртное почти не пью, клубы исключено - я очень домашний :),
препод действительно СУБДшник, но он просто еще очень требовательный к деталям, а по предмету Основы проектирования информационных систем очень муторно делать систему, если ты даже не догадываешся как это в действительности работает:(
← →
Elafor (2010-01-21 11:30) [17]и еще как должна называться прога в которой на 80% кнопок должны быть заглушки?
← →
Anatoly Podgoretsky © (2010-01-21 11:34) [18]
> а все преподы посылают к преподу по СУБД
Правильно посылают, но ты видимо вопросы задавать не умеешь.
← →
Anatoly Podgoretsky © (2010-01-21 11:35) [19]> Elafor (21.01.2010 11:30:17) [17]
Глушитель
← →
Sergey13 © (2010-01-21 11:37) [20]> [16] Elafor (21.01.10 11:28)
> а по предмету Основы проектирования информационных систем
> очень муторно делать систему, если ты даже не догадываешся
> как это в действительности работает:(
Насколько я помню институт - сначала читается курс лекций с семинарами, а ПОТОМ дается на выполнение курсовой проект. И если ты "даже не догадываешся как это в действительности работает", то значит ты этих лекций не слушал.
> [17] Elafor (21.01.10 11:30)
> и еще как должна называться прога в которой на 80% кнопок
> должны быть заглушки?
Значит то, на чем ты встал входит в другие 20%. Не меню же тебе дали разрабатывать.
Впрочем это уже лирика.
← →
Elafor (2010-01-21 11:39) [21]Да я же не спорю что я много чего не умею, но где же мне в такой ситуации этому научится - не чего дельного кроме этого форума не нашел...
← →
Anatoly Podgoretsky © (2010-01-21 11:40) [22]Институт более дельное, чем форум.
← →
Elafor (2010-01-21 11:42) [23]в том то и дело что лекции не читали по программированию, читали по работе с Rational Rose(что я уже сделал)на счет программы - подразумевается что меня обучили основам нескольких языков программирования, а как ты будеш писать дело твоё
← →
Плохиш © (2010-01-21 14:47) [24]Видно не твоё это, не твоё.
← →
Дмитрий Белькевич (2010-01-21 23:59) [25]>(Эт все в Access 2003)Необходимо из имеющийся таблицы DBGrid1(Список товаров(Название товара, цена за ед товара, количество товара)) пренести выбранные записи в таблицу DBGrid2(Заказ(Название товара, цена за ед товара, количество товара, Заказываемое количество, цена)).
Разбиваем задачу на части.
1. Найти выбранные в гриде записи.
2. Добавить их в нужную таблицу.
3. Обновить второй грид, перечитав данные из таблицы.
>в том то и дело что лекции не читали по программированию
Не читали? Или не слушал? Если первое - то ВУЗ - г-но, если второе - то сам себе виноват.
← →
Anatoly Podgoretsky © (2010-01-22 08:54) [26]То Военное Учебное Заведение, будет учить как портянки мотать.
← →
KilkennyCat © (2010-01-22 10:35) [27]
> будет учить как портянки мотать.
Зачем учить, можно на форуме спросить.
← →
Elafor (2010-01-22 10:41) [28]
> Дмитрий Белькевич
Уточнение - по программированию с использованием данных из БД не читали
В конце концов это раздел - Начинающие
Я написал такой код -
DataModule5.ADOCommand1.CommandText:="INSERT INTO Заказ([Название продукта], [Цена за ед товара], [Количество на складе], [Код завхоза]) VALUES(:NameT, :ByeT, :ValT, :Zavhoz);";
DataModule5.ADOCommand1.CommandType:=cmdText;
DataModule5.ADOCommand1.Parameters.ParamByName("NameT").Value:= DBEdit1.Text;
DataModule5.ADOCommand1.Parameters.ParamByName("ValT").Value:= DBEdit2.Text;
DataModule5.ADOCommand1.Parameters.ParamByName("ByeT").Value:= DBEdit3.Text;
DataModule5.ADOCommand1.Parameters.ParamByName("Zavhoz").Value:= DBEdit4.Text;
DataModule5.ADOCommand1.Execute;
В DBEdit"ах хранятся значения из первой таблицы, Заказ - вторая таблица, в которую я переношу данные из первой
Пишет ошибку - class EOleException - Несоответствие типов данных в выражении условия отбора.
но я все поля в БД([Название продукта], [Цена за ед товара], [Количество на складе], [Код завхоза]) проверил - типы одинаковые, что это может быть?
← →
Elafor (2010-01-22 10:44) [29]Еще у меня при отображение формы в которой я выбираю записи которые необходимо переносить, я удаляю все записи из таблицы заказ, вот так -
procedure TForm3.FormShow(Sender: TObject);
begin
DataModule5.ADOCommand1.CommandText:="DELETE* FROM Çàêàç;";
DataModule5.ADOCommand1.Execute;
end;
← →
Elafor (2010-01-22 10:45) [30]*Çàêàç - Заказ
← →
KilkennyCat © (2010-01-22 12:04) [31]я бы не стал такие глобальные вещи вешать на шоу формы. Оно далеко не однократно может быть вызвано. Повесь это там, где делаешь вызов формы.
← →
Anatoly Podgoretsky © (2010-01-22 12:06) [32]> Elafor (22.01.2010 10:41:28) [28]
> В конце концов это раздел - Начинающие
А ты как к ним относишься?
← →
Anatoly Podgoretsky © (2010-01-22 13:07) [33]
> я бы не стал такие глобальные вещи вешать на шоу формы.
> Оно далеко не однократно может быть вызвано. Повесь это
> там, где делаешь вызов формы.
Нечего страшного, укаолько не удаляй больше не удались. Просто будут лишнии вызовы
← →
KilkennyCat © (2010-01-22 13:19) [34]ну это если в промежутке между вызовами у него че-нить не должно добавиться... тогда возникнет вопрос, почему иногда исчезают данные. Хотя, учитывая ситуацию заглушки, с этой прогой вопроса не возникнет.
← →
Elafor (2010-01-22 15:31) [35]Ладно, с переносом данных из одной таблицы в другую разобрался..вроде.
> KilkennyCat © (22.01.10 12:04) [31]
> я бы не стал такие глобальные вещи вешать на шоу формы.
> Оно далеко не однократно может быть вызвано. Повесь это
> там, где делаешь вызов формы.
Спасиб, сразу не подумал, теперь исправил.
← →
Elafor (2010-01-22 16:38) [36]Еще вопрос:
Чтобы переместить курсор на последнюю запись надо использовать DataModule.ADOTable.Last, а есть какая нибудь процедура чтоб определять является ли выбранная запись последней?
Я нашел как вывести количество всех записей, думал с помощью этого буду определять, но вот как определить текущую не понял.
← →
Anatoly Podgoretsky © (2010-01-22 16:54) [37]Нет.
Текущую определять не надо она текущая
← →
Anatoly Podgoretsky © (2010-01-22 16:55) [38]> Elafor (22.01.2010 16:38:36) [36]
Раз ты можешь переместиться, то что мешает ее запомнить?
← →
Elafor (2010-01-22 21:07) [39]Спсиб за советы, я ее сделал!!! УРА УРА УРА!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.005 c