Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1262937611
@!!ex
2010-01-08 11:00
2010.03.28
Бесплатный NAT Proxy для Windows


4-1231749793
kalexi
2009-01-12 11:43
2010.03.28
Как узнать место расоложения папки "Автозагрузка"?


15-1262975426
Pitbull
2010-01-08 21:30
2010.03.28
HTML Help Workshop


15-1263072625
Юрий
2010-01-10 00:30
2010.03.28
С днем рождения ! 10 января 2010 воскресенье


6-1215153703
mv
2008-07-04 10:41
2010.03.28
SSL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский