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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2014, 21:12   #1
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию Посмотрите) Вроде правильно все но не работает. Что не так?

Вообщем проблема такая. Должен в базу заносить данные из StringGrid'а, а по факту в базу вносится только значение для "Cena", а для "NameIng" нет. Вот всю голову сломал, не понимаю что не так?

Код:
procedure TForm5.Button1Click(Sender: TObject);
begin
With ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('INSERT INTO Ingredients (NameIng) VALUES ('+Form5.StringGrid1.Cells[0,1]+')');
    SQL.Clear;
    SQL.Add('INSERT INTO Ingredients (Cena) VALUES ('+Form5.StringGrid1.Cells[1,1]+')');
    ExecSQL;
  end;
end;
Я только учусь)

Последний раз редактировалось Stilet; 13.03.2014 в 21:36.
Bane вне форума Ответить с цитированием
Старый 13.03.2014, 21:21   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Просто запрос для добавления "NameIng" не выполняется.
Исправленное я подчеркнул.
Код:
SQL.Add('INSERT INTO Ingredients (NameIng) VALUES ('+Form5.StringGrid1.Cells[0,1]+')');
ExecSQL;
SQL.Clear;
SQL.Add('INSERT INTO Ingredients (Cena) VALUES ('+Form5.StringGrid1.Cells[1,1]+')');
ExecSQL;
Приблизительно, как-то так...
Streletz вне форума Ответить с цитированием
Старый 13.03.2014, 21:22   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Зачем двумя INSERT-ами? Это обычно одним делается, в данном случае наверняка
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.03.2014, 21:22   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
SQL.Clear;
SQL.Add('INSERT INTO Ingredients (NameIng) VALUES ('+Form5.StringGrid1.Cells[0,1]+')');
SQL.Clear;
SQL.Add('INSERT INTO Ingredients (Cena) VALUES ('+Form5.StringGrid1.Cells[1,1]+')');
ExecSQL;
Я бы обратил внимание. Так понимаю - формируем запрос, стираем запрос, формируем запрос, исполняем запрос. Так зачем формировать, чтобы тут же его стереть?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.03.2014, 21:25   #5
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Зачем двумя INSERT-ами? Это обычно одним делается, в данном случае наверняка
Я понимаю, что проще и эффективнее сделать одним. Только ТС зачем-то нужно 2.
Это лучше у него спросить.
Streletz вне форума Ответить с цитированием
Старый 13.03.2014, 21:27   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А, ну если цена ингредиента в одной записи, а наименование в другой, тогда да. Интересно посмотреть как с этим работать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.03.2014, 21:32   #7
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию

Написал ExecSQL; и теперь выдает ошибку. "Параметр не имеет значения по умолчанию."
Я только учусь)
Bane вне форума Ответить с цитированием
Старый 13.03.2014, 21:34   #8
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию

Я знаю что можно делать в одном INSERT'е, но и там ошибка вылазит...
Я только учусь)
Bane вне форума Ответить с цитированием
Старый 13.03.2014, 21:42   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Bane Посмотреть сообщение
Я знаю что можно делать в одном INSERT'е...
Не "можно", а - "НУЖНО"!
Если, конечно, цена и наименование относятся к одному продукту (ингридиенту).


Цитата:
Сообщение от Bane Посмотреть сообщение
но и там ошибка вылазит...
наверняка секретная, да?!


показывайте код, как Вы добавляете одним запросом и приведите тут скриншот ошибки. Будем думать вместе, что Вы делаете не так!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2014, 21:48   #10
Bane
LetTheGameBegin
Пользователь
 
Аватар для Bane
 
Регистрация: 13.03.2014
Сообщений: 34
По умолчанию

Вот такая беда)

Код:
procedure TForm5.Button1Click(Sender: TObject);
begin
With ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('INSERT INTO Ingredients (NameIng, Cena) VALUES ('+Form5.StringGrid1.Cells[0,1]+', '+Form5.StringGrid1.Cells[1,1]+')');
    ExecSQL;
  end;
end;
Я только учусь)

Последний раз редактировалось Serge_Bliznykov; 13.03.2014 в 22:01.
Bane вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает код, хотя вроде всё правильно mpdasa Помощь студентам 3 04.06.2012 10:44
Моделирование в GPSS.. Посмотрите все ли правильно.. hen Помощь студентам 2 24.09.2010 14:50
посмотрите что не так alex_sande Microsoft Office Excel 4 17.06.2010 00:32
посмотрите что не так(((( доходит до 37 строки - функции и все sunnysunny Помощь студентам 15 29.05.2009 00:20