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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2014, 23:33   #1
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию Ошибка в коде!!!!

s:='INSERT INTO Заказы ([Наименование]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text )+')';- этот кусок на наименование добавляет!!!!

s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text )+',
'+QuotedStr(DBEdit1.Text)+', '+QuotedStr(DBEdit2.Text)+')';-На этот кусок он вообще не реагирует(

Что сделать можно будет?
курбанниязов вне форума Ответить с цитированием
Старый 12.05.2014, 08:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
этот кусок на наименование добавляет!!!!
А должен куда?
Цитата:
На этот кусок он вообще не реагирует(
А где код выполнения запросов? Или угадывать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2014, 12:47   #3
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

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

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

Так. Ладно. представим на мгновение что я Мессинг.
Первое что мне совсем не нравится это сам запрос:
Код:
 s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text)+', 
'+QuotedStr(DBEdit1.Text)+', '+QuotedStr(DBEdit2.Text)+')';
[Цена на 1 ед], [Вес/Объем] - это числовые поля? Если да то QuotedStr для них не нужно. Не смотря на преобразование, которое скорее всего сработает (что не факт), выйдив из строки ее числовое представление, я бы их не писал.
Далее:
Код:
        try
           DataModuleMenu.ADOQuery1.ExecSQL;
           ShowMessage('Запись успешно сохранена!');
        except
          on e:Exception do ShowMessage('Ошибка при добавление записи!:'+e.Message);
        end;
Т.е. опять натыкаемся на нелюбовь студентов обрабатывать ошибки, читая их текст, пусть даже он не даст ничего информативного. Видимо в современном образовании на это закрывают глаза, выпуская миллиарды "индусов"

Далее: С чего ты взял что ничего не вносится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2014, 15:09   #5
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

Stilet


Я щас исправил в коде но никак не добавляеться данные в этом коде точто выделено жирным:
procedure TForm16.Button1Click(Sender: TObject);
var s:String;
begin
if (DBEdit3.Text='') then
ShowMessage('Количество') else
if (DBEdit5.Text='') then
ShowMessage('Дата') else
if (DBEdit6.Text='') then
ShowMessage('Номер столика') else
if (DBComboBox2.Text='') then
ShowMessage('Статус') else
begin
if DataModuleMenu.AdoTableZakazy.Modif ied then
begin
s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text )+', '+(DBEdit1.Text)+', '+(DBEdit2.Text)+')';
DataModuleMenu.ADOQuery1.Close;
DataModuleMenu.ADOQuery1.SQL.Clear;
DataModuleMenu.ADOQuery1.SQL.Add(s) ;
begin
DataModuleMenu.ADOQuery1.ExecSQL;
ShowMessage('Запись успешно сохранена!');
end;
DataModuleMenu.ADOTableZakazy.Activ e:=false;
DataModuleMenu.ADOTableZakazy.Activ e:=true;
form16.hide;
end
else
form16.hide;
end;
end;

Последний раз редактировалось курбанниязов; 12.05.2014 в 15:29.
курбанниязов вне форума Ответить с цитированием
Старый 12.05.2014, 15:18   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
 if DataModuleMenu.AdoTableZakazy.Modified then
Зачем это?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.05.2014, 15:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
никак не добавляеться данные в этом коде точто выделено жирным:
Так выделенные жирным и не должны ничего добавлять.
Это просто операторы проверок, не более.
Давай по другому: Поставь точку прерывания на оператор ExecSQL - запусти программу. Когда она на нем брякнется наведи мышку на переменку s и посмотри что там написано, как выглядит сам запрос.
Далее посмотри какое из сообщений описанных у тебя в try...except выйдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2014, 15:23   #8
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так выделенные жирным и не должны ничего добавлять.
Это просто операторы проверок, не более.
Давай по другому: Поставь точку прерывания на оператор ExecSQL - запусти программу. Когда она на нем брякнется наведи мышку на переменку s и посмотри что там написано, как выглядит сам запрос.
Далее посмотри какое из сообщений описанных у тебя в try...except выйдет.




Можно вот эти операторы проверок добавить в Insert into
у меня просто есть 2 таблицы одна заказы второе меню и я выборочно выбираю то что нада добавить в заказ

Последний раз редактировалось курбанниязов; 12.05.2014 в 15:26.
курбанниязов вне форума Ответить с цитированием
Старый 12.05.2014, 15:26   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Да не доходит у ТС до ExexSQL. Modified=False и всех делов
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.05.2014, 17:30   #10
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так выделенные жирным и не должны ничего добавлять.
Это просто операторы проверок, не более.
Давай по другому: Поставь точку прерывания на оператор ExecSQL - запусти программу. Когда она на нем брякнется наведи мышку на переменку s и посмотри что там написано, как выглядит сам запрос.
Далее посмотри какое из сообщений описанных у тебя в try...except выйдет.


можно через Post эти операторы проверок добавить нужно все эти операторы тоже добавлять в таблицу как сделать правильно?



procedure TForm16.Button1Click(Sender: TObject);
var s:String;
begin
begin
s:='INSERT INTO Заказы ([Наименование], [Цена на 1 ед], [Вес/Объем]) VALUES ('+QuotedStr(dbLookUpComboBox1.Text )+',
'+QuotedStr(DBEdit1.Text)+', '+QuotedStr(DBEdit2.Text)+')';
DataModuleMenu.ADOQuery1.Close;
DataModuleMenu.ADOQuery1.SQL.Clear;
DataModuleMenu.ADOQuery1.SQL.Add(s) ;
try
begin
DataModuleMenu.ADOQuery1.ExecSQL;
ShowMessage('Запись успешно сохранена!');
end
except
ShowMessage('Ошибка при добавление записи!');
end;
DataModuleMenu.ADOTableZakazy.Activ e:=false;
DataModuleMenu.ADOTableZakazy.Activ e:=true;
form16.hide;
end
else
form16.hide;
end;
end;


Я сделал так но при добавление Итоговой Суммы, Даты и Официанта он не добавляет выдает ошибку!

Последний раз редактировалось курбанниязов; 12.05.2014 в 17:36.
курбанниязов вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. ошибка в коде iris_ka Помощь студентам 11 23.09.2012 22:12
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка в коде zhilkinson Visual C++ 3 11.02.2012 18:41
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Ошибка в коде Cronos20 PHP 3 09.07.2010 23:31