Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.02.2015, 16:30
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию В чем ошибка кнока добавления в заказ


код конпки

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm10.Button1Click(Sender: TObject);
var
str:string;
begin
str:='insert into заказы ([Название],[Цена]) values ('+
                      dbgrd1.Columns[1].ToString +',"'+
                      dbgrd1.Columns[5].Tostring +')';
                      showmessage(dbgrd1.Fields[1].value);
                      showmessage(dbgrd1.Fields[5].value);
form69.ADOQuery1.SQL.Add(str);
form69.ADOQuery1.ExecSQL;
 
form69.ADOTable1.Active:=true;
 
form69.ADOTable1.Requery;
form69.DBGrid1.Refresh;
end;
MAD: Предупреждение! Оформляйте код правильно.

база acsess там создана пустая таблица заказы с полями название и цена.

Последний раз редактировалось M.A.D.M.A.N., 18.02.2015 в 16:39.
Ответить с цитированием
  #2  
Старый 18.02.2015, 17:31
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Проще так. Вот проект. Ненужные формы удалил.
На первой форме значек кошелька это кнопка заказы. Все основные соединения на datamodule1. form10 это где кнопка добавить в заказ, которая добавляет на 69 форму, но ошибка. Помогите решить пожалуйста. Ошибку писал выше

http://rghost.ru/private/7StT9sm2W/c...2b434ba06a3e25
Ответить с цитированием
  #3  
Старый 18.02.2015, 17:32
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Код:
1
2
3
str:='insert into заказы ([Название],[Цена]) values ('+
                      dbgrd1.Columns[1].ToString +',"'+
                      dbgrd1.Columns[5].Tostring +')';

Кавычку в конце забыл

Код:
1
2
3
str:='insert into заказы ([Название],[Цена]) values ('+
                      dbgrd1.Columns[1].ToString +',"'+
                      dbgrd1.Columns[5].Tostring +'")';
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
Вовайн (18.02.2015)
  #4  
Старый 18.02.2015, 17:43
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Для начала - посмотреть, что получается в итоге в переменной str.
На вскидку - значение поля [Цена] - заключено в кавычки,
А значение поля [Название] - нет.

Второе.
очищается ли SQL перед вызовом этой функции?
Может сразу
Код:
1
form69.ADOQuery1.SQL.Text:=str;
Ответить с цитированием
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
Вовайн (18.02.2015)
  #5  
Старый 18.02.2015, 17:47
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от SCrat.ORS
Кавычку в конце забыл

Код:
1
2
3
str:='insert into заказы ([Название],[Цена]) values ('+
                      dbgrd1.Columns[1].ToString +',"'+
                      dbgrd1.Columns[5].Tostring +'")';
Теперь такая ошибка
Ответить с цитированием
  #6  
Старый 18.02.2015, 17:54
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Для начала - посмотреть, что получается в итоге в переменной str.
На вскидку - значение поля [Цена] - заключено в кавычки,
А значение поля [Название] - нет.

Второе.
очищается ли SQL перед вызовом этой функции?
Может сразу
Код:
1
form69.ADOQuery1.SQL.Text:=str;
Как я понял не очищается. Так прописать? Как добавить очистку?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
form69.ADOQuery1.SQL.Text:=str;
 
str:='insert into Заказы(Название,[цена]) values('+
                      dbgrd1.Columns[1].ToString +',"'+
                      dbgrd1.Columns[5].Tostring+')';
                      //showmessage(dbgrd1.Fields[1].value);
                      //showmessage(dbgrd1.Fields[4].value);
form69.ADOQuery1.SQL.Add(str);
form69.ADOQuery1.ExecSQL;
form69.ADOTable1.Requery;
form69.DBGrid1.Refresh;
end;
Теперь такая ошибка, если прописать, что что выше в коде.

Если есть возможность гляньте пожалуйста выше там я выложил исходник. Делал на XE7
Ответить с цитированием
  #7  
Старый 18.02.2015, 18:32
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
form69.ADOQuery1.Edit;
form69.ADOQuery1.SQL.Clear;
str:='insert into заказы ([Название],[Цена]) values ('+
                      dbgrd1.Columns[1].FieldName +',"'+
                      dbgrd1.Columns[5].FieldName +'")';
                      showmessage(dbgrd1.Fields[1].value);
                      showmessage(dbgrd1.Fields[5].value);
form69.ADOQuery1.SQL.Add(str);
form69.ADOQuery1.Post;
form69.ADOTable1.Active:=True;
form69.ADOTable1.Requery;
form69.DBGrid1.Refresh;
Вот так вот правильнее будет.
И опять таки. если ты делаешь запрос на
Код:
1
',"'+dbgrd1.Columns[5].Tostring+')'
То на выходе ты получаешь ,"....) - Кавычку открыл для значения, а закрываешь её скобкой чтоли?

Ну и код у тебя... черт ногу сломает. Далее оно ругается на невозможность совершить сие действие на закрытом DateSet.... А вот где он у тебя находится... Нее батенька, разбирайся сам... Я 50 юнитов исправил только что бы скомпилировать. Дальше думать какой DateSet к чему относится, какая таблица и запросы что от куда и куда - это мне уже влом разбираться.
И вообще наведи в коде и формах порядок. Там почти все формы вообще удалить можно, и сделать динамическое создание форм.
И ещё, я бы отказался использовать в БД названия таблиц и полей на Кириллице... - Неизбежно рано или поздно приведет к проблемам.
Ну и от AlphaSkin тоже лучше отказаться... Прикольно конечно, но я думаю не много матёрых программистов пользуются подобными вещами, Все эти свистелки-перделки в пустую расходуют ресурсы.
__________________
Програмистами не рождаются, ими становятся!

Последний раз редактировалось SCrat.ORS, 18.02.2015 в 19:24.
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
Вовайн (18.02.2015)
  #8  
Старый 18.02.2015, 19:58
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Спасибо.Не в коде лень порядок наводить ну и льфаскрины нужны мне. Это просто курсач.
Ответить с цитированием
  #9  
Старый 18.02.2015, 20:44
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Вот такая теперь ошибка
adoquery1: cannot perform this operation on a closed dataset.
Ответить с цитированием
  #10  
Старый 18.02.2015, 20:50
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Цитата:
Сообщение от Вовайн
Вот такая теперь ошибка
adoquery1: cannot perform this operation on a closed dataset.
Цитата:
Сообщение от SCrat.ORS
Далее оно ругается на невозможность совершить сие действие на закрытом DateSet.... А вот где он у тебя находится... Нее батенька, разбирайся сам... Я 50 юнитов исправил только что бы скомпилировать. Дальше думать какой DateSet к чему относится, какая таблица и запросы что от куда и куда - это мне уже влом разбираться.
Я же Написал.
А про альфаскин я говорил к тому, что вряд ли кто-то их устанавливает себе, и в итоге ты даешь проект с ними, а он и открыть его не может и скомпилировать тоже. В итоге приходится все это удалять-ковырять. И чаще всего это заканчивается - "Да ну его нафиг" и помощи не последует в решении проблемы.
__________________
Програмистами не рождаются, ими становятся!

Последний раз редактировалось SCrat.ORS, 18.02.2015 в 20:53.
Ответить с цитированием
Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение:
Вовайн (18.02.2015)
  #11  
Старый 18.02.2015, 21:12
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Вот удалил скины http://rghost.ru/private/7xjdWmTVc/7...14e5df2dcc629b и еще кто поможет с компонентом TRyMenu. Файлы в проект скинул. Нужно просто увеличить шрифт в main menu.
Ответить с цитированием
  #12  
Старый 19.02.2015, 12:53
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Помогите пожалуйста. Скоро сдавать курсач. По софту только это осталось.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025