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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2014, 20:29   #1
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию Ошибка при добавлении данных в БД ( insert into )

procedure TForm16.Button1Click(Sender: TObject);
var s,m:String;
begin
begin
s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем], [Количество],[Итого цена],[Статус]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text )+', '+(DBEdit1.Text)+', '+(DBEdit2.Text)+','+(DBEdit3.Text) +','+(DBEdit4.Text)+','+QuotedStr(D BComboBox2.Text)+')';
DataModuleMenu.ADOQuery4.Close;
DataModuleMenu.ADOQuery4.SQL.Clear;
DataModuleMenu.ADOQuery4.SQL.Add(s) ;

s:='SELECT Блюда.[Цена на 1 ед], Блюда.[Вес/Объем], Блюда.Наименование, [Виды Блюд].[Наименование категории] FROM [Виды Блюд] INNER JOIN Блюда ON [Виды Блюд].Код_вида = Блюда.Код_Вида WHERE ((([Виды Блюд].[Наименование категории])="Горячие напитки"))';
DataModuleMenu.ADOQuery4.Close;
DataModuleMenu.ADOQuery4.SQL.Clear;
DataModuleMenu.ADOQuery4.SQL.Add(s) ;
DataModuleMenu.AdoQuery4.Active:=fa lse;
DataModuleMenu.AdoQuery4.Active:=tr ue;


m:='INSERT INTO Заказы ([Номер столика], [Официант]) VALUES ('+QuotedStr(dbLookUpComboBox2.Text )+', '+(DBEdit6.Text)+')';
DataModuleMenu.ADOQuery5.Close;
DataModuleMenu.ADOQuery5.SQL.Clear;
DataModuleMenu.ADOQuery5.SQL.Add(s) ;


m:='SELECT Сотрудники.Фамилия, [Закрепление рабочего места].[Номер столика] FROM Сотрудники INNER JOIN [Закрепление рабочего места] ON Сотрудники.[Код сотрудника] = [Закрепление рабочего места].[Код сотрудника]';
DataModuleMenu.ADOQuery5.Close;
DataModuleMenu.ADOQuery5.SQL.Clear;
DataModuleMenu.ADOQuery5.SQL.Add(s) ;
DataModuleMenu.AdoQuery5.Active:=fa lse;
DataModuleMenu.AdoQuery5.Active:=tr ue;
DataModuleMenu.ADOQuery5.ExecSQL;
try
begin
DataModuleMenu.ADOQuery5.ExecSQL;
ShowMessage('Запись успешно сохранена! ');
end
except
ShowMessage('Ошибка записи!');
end;
form16.hide;
end

Последний раз редактировалось курбанниязов; 17.05.2014 в 20:34.
курбанниязов вне форума Ответить с цитированием
Старый 17.05.2014, 20:38   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

программиста надо сюда приглашать
который "программу" скоренько закинет в мусорную корзину и напишет так как надо
eval вне форума Ответить с цитированием
Старый 17.05.2014, 20:45   #3
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

[QUOTE=eval;1377421]программиста надо сюда приглашать
который "программу" скоренько закинет в мусорную корзину и напишет так как надо[/QUOT


В смысле????????
курбанниязов вне форума Ответить с цитированием
Старый 17.05.2014, 20:54   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

в прямом смысле
то что у вас это адъ и израиль...
его исправить нельзя, только удалить и написать все с ноля.

ваша субд пакетные запросы поддерживает?
про параметры чего слышали?

AdoQuery5.Active:=fa lse;
AdoQuery5.Active:=tr ue;
ADOQuery5.ExecSQL;
try
begin
ADOQuery5.ExecSQL;
эта ваще пестня ...
eval вне форума Ответить с цитированием
Старый 17.05.2014, 20:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В смысле????????
В смысле что эту программу проще написать с нуля чем что-то исправить.
Вот например - я тебе говорил чтоб исключения обрабатывал нормально? Говорил - http://www.programmersforum.ru/showthread.php?t=260383.
А ты что написал?
И вот это:
Цитата:
DataModuleMenu.AdoQuery5.Active:=tr ue;
DataModuleMenu.ADOQuery5.ExecSQL;
Так писать не надо. Хочешь SELECT пиши Active:=true; Хочешь остальное - пиши ExecSQL. Не мешай их вместе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 17:47   #6
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

Код:
procedure TForm16.Button1Click(Sender: TObject);
var s: String;
begin
begin
s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем], [Количество],[Итого Цена],[Статус],[Номер столика],[Официант])VALUES ('
+QuotedStr(dbLookUpComboBox1.Text)+', '+(DBEdit1.Text)+', '+(DBEdit2.Text)+','+(DBEdit3.Text)+','+(DBEdit4.Text)+','
+QuotedStr(DBComboBox2.Text)+','+(dbLookUpComboBox2.Text)+','+ (DBEdit6.Text)+')';
DataModuleMenu.ADOQuery1.Close;
DataModuleMenu.ADOQuery1.SQL.Clear;
DataModuleMenu.ADOQuery1.SQL.Add(s);
try
begin
DataModuleMenu.ADOQuery1.ExecSQL;
ShowMessage('Запись успешно сохранена!');
end
except
ShowMessage('Ошибка записи!');
end;
form16.hide;
end
end;
Выдает ошибку значение фамилии не имеет значение по умолчанию

Последний раз редактировалось курбанниязов; 18.05.2014 в 18:39.
курбанниязов вне форума Ответить с цитированием
Старый 18.05.2014, 18:07   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит есть поле "Фамилия" которое требуется в этом INSERT тоже вставлять.

Да, и еще Будь ласка: Код выделяй спецтегом по кнопке # на панели инструментов поста.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 18:36   #8
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

[QUOTE=Stilet;1377753]Значит есть поле "Фамилия" которое требуется в этом INSERT тоже вставлять.

Как это реализовать совсем запутался.

Последний раз редактировалось курбанниязов; 18.05.2014 в 18:39.
курбанниязов вне форума Ответить с цитированием
Старый 18.05.2014, 19:21   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Здрасьте... Ты же сам запрос написал.
Код:
s:='INSERT INTO Заказы (
  [Наименование]
, [Цена на 1 ед]
, [Вес/Объем]
, [Количество]
,[Итого Цена]
,[Статус]
,[Номер столика]
,[Официант]
,[Фамилия]
)VALUES ('+
     QuotedStr(dbLookUpComboBox1.Text)
+', '+DBEdit1.Text
+', '+DBEdit2.Text
+','+DBEdit3.Text
+','+DBEdit4.Text
+','+QuotedStr(DBComboBox2.Text)
+','+dbLookUpComboBox2.Text
+','+DBEdit6.Text)
+','+QuotedStr(DBЭдитСФамилиейИлиЕщеОткуда-то.Text)
+')';
Ну? Не тормози же. У тебя же в коде перед глазами пример INSERT запроса с указанными в нем полями и данными.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при добавлении данных в список DartVader C++ Builder 1 21.12.2013 18:43
Ошибка в ADO Query при добавлении новых данных reihtmonbern БД в Delphi 5 16.12.2013 09:12
Ошибка в добавлении(INSERT INTO) manula БД в Delphi 7 15.03.2013 17:28
Ошибка при добавлении данных в бд prizrak1390 PHP 3 29.07.2010 22:47
Ошибка при добавлении данных Ehha1234 БД в Delphi 0 19.06.2010 20:33