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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2009, 12:34   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Gorychev, это не работает . Ошибка. Мне надо чтобы был запрос к БД, которой бы показывал в Label ID выбранного предмета. Понятнее? )
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2009, 13:07   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
artemavd
Ну не буду спорить с Сайфером, но всетки покажу по своему:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
 Table_add_predm.First;
if 
 Table_add_predm.Locate('ID',StrToInt(ComboBox.Items[ComboBox.ItemIndex]),[])
then Label1.Caption:=Table_add_predm.FieldByName('ID_Predmet').AsString;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.04.2009, 13:09   #13
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

попробуй так:

Код:
rocedure TForm1.ComboBox3Select(Sender: TObject);
var
 nomer_predm:integer; s: string;
begin
 Query_zapros.Active:=False;
 Query_zapros.SQL.Clear;
 Query_zapros.SQL.Add('SELECT ID_Predmet FROM table_predmety WHERE Predmet = ');
 s := ComboBox3.Text;
 Query_zapros.SQL.Add(s + ')'); 
 Query_zapros.Active:=True;
 nomer_predm:=Query_zapros.FieldByName('ID_Predmet').AsInteger;
 Form1.Label12.Caption:='Номер предмета = '+IntToStr(nomer_predm); 
end;
У тебя выбирались все записи поля ID_Predmet, не было условия на выборку.

А предыдущий мой пост был коментарием к посту №8

Последний раз редактировалось Gorychev; 28.04.2009 в 13:19.
Gorychev вне форума Ответить с цитированием
Старый 28.04.2009, 13:29   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Stilet, попробовал Ваш вариант, но результата нету. Сделал так:
Код:
 Form1.Table1.First;
 if Form1.Table1.Locate('ID_Predmet',StrToInt(Form1.ComboBox3.Items[ComboBox3.ItemIndex]),[])
    then
     Form1.Label12.Caption:=Form1.Table1.FieldByName('ID_Predmet').AsString;
И ошибки нету, и в Label не выводится ID.
Gorychev, также попробовал Ваш вариант, но выдается ошибка. Программа ругается на скобку. Делал так:
Код:
Query_zapros.Active:=False;
 Query_zapros.SQL.Clear;
 Query_zapros.SQL.Add('SELECT ID_Predmet FROM table_predmety WHERE Predmet = ');
 s:=ComboBox3.Text;
 Query_zapros.SQL.Add(s + ')');
 Query_zapros.Active:=True;
 nomer_predm:=Query_zapros.FieldByName('ID_Predmet').AsInteger;
 Form1.Label12.Caption:='Номер предмета = '+IntToStr(nomer_predm);
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2009, 13:40   #15
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Уберите скобку
Код:
 ...Query_zapros.SQL.Add(s);...
точно, она лишняя
Gorychev вне форума Ответить с цитированием
Старый 28.04.2009, 13:48   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Исправил. Но теперь появляется ошибка, типа: "Invalid field name Биология". Какой бы предмет я не выбрал из комбика (его свойство Style я установил в DropDownList), мне выдается ошибка, которую я привел в начале поста, но только вместо Биологии стоит тот предмет, который я выбираю. Код:
Код:
var
 nomer_predm:integer;
 s:string;
begin
 Query_zapros.Active:=False;
 Query_zapros.SQL.Clear;
 Query_zapros.SQL.Add('SELECT ID_Predmet FROM table_predmety WHERE Predmet = ');
 s:=ComboBox3.Text;
 Query_zapros.SQL.Add(s);
 Query_zapros.Active:=True;
 nomer_predm:=Query_zapros.FieldByName('ID_Predmet').AsInteger;
 Form1.Label12.Caption:='Номер предмета = '+IntToStr(nomer_predm);
end;
А кстати, Горячев, может быть в этой строке:
Код:
 Query_zapros.SQL.Add('SELECT ID_Predmet FROM table_predmety WHERE Predmet = ');
После "=" надо было поставить s? То есть WHERE Predmet = s.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2009, 13:55   #17
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

легче поставить LookupComboBox, указать ему поля из основного запроса и не париться с дополнительными, да и код ему такой громоздкий не нужен, да и в возврат можно задать ID записи, и не бегать по итемам

ну например, запрос такой:

Код:
Query.Close;
Query.SQL.Text := Format('SELECT ID_Predmet, Predmet FROM table_predmety WHERE Predmet = ''%s'' ', [ComboBox3.Text]);
Query.Open;
после, для LookupComboBox указывает ListSource - твой DataSource, для отображения поле Predmet в свойство ListField, а для возврата поле ID_Predmet в свойство KeyField.

и если тебе нужно получить текущие данные, то в зависмости от того что нужно, выбираешь
Код:
var ID: Integer;
ID := LookupComboBox.KeyValue;
Form1.Label12.Caption := IntToStr(ID);
или
Код:
Form1.Label12.Caption := LookupComboBox.Text;
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)

Последний раз редактировалось koma_grusha; 28.04.2009 в 14:07.
koma_grusha вне форума Ответить с цитированием
Старый 28.04.2009, 14:05   #18
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Выложите проект на форум.

Цитата:
А кстати, Горячев, может быть в этой строке:
запрос должен быть строкой, можно так:
Код:
 s:=ComboBox3.Text;
 Query_zapros.SQL.Add('SELECT ID_Predmet FROM table_predmety WHERE Predmet = ' + s);
Но сути это не меняет.
Gorychev вне форума Ответить с цитированием
Старый 28.04.2009, 14:07   #19
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

koma_grusha, а можете пример кода скинуть как работать с ним? А то я с ним не работал.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.04.2009, 14:08   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
koma_grusha
Как сказать... DB компоненты не самый лучший вариант в принципе...
Цитата:
artemavd
Можеш сюда прикрепить свой проект с БДшкой?
Меня такая концепция разработкт еще не подводила.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузить png файл MAcK Мультимедиа в Delphi 1 22.12.2008 22:23
Как загрузить картинку? Editor Работа с сетью в Delphi 11 15.07.2008 23:13
Загрузить из файла в Edit Shouldercannon Общие вопросы Delphi 5 07.07.2008 08:32
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45