Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.08;
Скачать: CL | DM;

Вниз

Проблема с БД в Дельфи   Найти похожие ветки 

 
x-steff   (2005-12-18 22:49) [0]

Люди знающие подскажите!
Опыта работы с БД - вапще никакого.. ((((
Ситуация такая:
Есть три таблицы:
1) Комплектующие(kompl.db) - ID, Тип(число), ПРоизводитель(число), Модель(строка), Цена($)
2) Тип комплектующей(types.db) - ID, Название (Процессор, Мать, винт и т.д.)
3) ПРоизводитель(manuf.db) - ID, Название (ASUS, MSI и т.д.)
На форме в TreeView я выбираю типа комплектующей (Проц, мать и пр.)
Далее должен делаться запрос к базе данных, чтоб он по ТИПУ комплектующей (проц и пр.) взял её ID из базы. Этот ID присваевается переменной:
[CODE]
Procedure TypeSel2;
BEGIN
 With Form1 do
   With Query4 do
     begin
       Close;
       SQL.Clear;
       SQl.Add("SELECT id FROM types.db WHERE KName="+ktype);
       Open;
       DevID:=Query4.FieldValues["id"];
     end;
END;
[/CODE]
После этого я делается еще один запрос к БД, в котором по этом ID из БД выбираются производители, которые собственно и производят такой типа комплектующих:
[CODE]
 With Query1 do
   begin
     Close;
     SQL.Clear;
     SQL.Add("SELECT mname FROM manuf.db WHERE id IN"+
     "(SELECT DISTINCT manuf FROM kompl.db WHERE type="+IntToStr(DevID)+")");
     Open;
   end;
 While not Query1.EOF do
   begin
//      DBComboBox1.Items.Add(Query1.FieldByName("mname").AsString);
     ComboBox1.Items.Add(Query1.FieldByName("mname").AsString);
     Query1.Next;
   end;
end;
[/CODE]
Т.е. заполняется ComboBox
После этого я должен выбрать в этом списке желаемого производителя..
Наприм это будет ASUS
Я его выбираю. То что я выбрал присваивается переменной mnf. Делается запрос к БД и выбираются уже модели комплектующих этого производителя (этот кусок проги я еще не написал..)
И после того как я выбиру модель, он мне должен выдать цену в Edit.
ПОтом я выбираю несколько устройств, добавляя каждое из них в таблицу. И у меня по идее должно подсчитываться стоимость компа... вот..
Я решил не использовать компоненты DBCOmboBox, т.к. после выбора в нем чеголибо и щелчке вне его, то что выбрано - исчезает.. у меня лично так.
Вопщем я повис вот тут:
[CODE]
Procedure TypeSel2;
BEGIN
 With Form1 do
   With Query4 do
     begin
       Close;
       SQL.Clear;
       SQl.Add("SELECT id FROM types.db WHERE KName="+ktype);
       Open;
       DevID:=Query4.FieldValues["id"];
     end;
END;
[/CODE]
Не присваивается ей то значение (ID), которе у ktype(проц, мать и пр.) в таблице types.db
Помогите пожалуйста..


 
Alexandr Bydantcev ©   (2005-12-19 05:10) [1]

Тэкс... А что в результате запроса получается?
Ежели ktype - строка, то надо нарисовать апострофы вокруг.


 
Desdechado ©   (2005-12-19 10:46) [2]

использовать параметры - это правильнее и удобнее со всех точек зрения


 
Sergey13 ©   (2005-12-19 10:54) [3]

2x-steff   (18.12.05 22:49)
1. А как ты по структуре "types.db - ID, Название" строишь дерево?
2. Зачем запрашивать ID из БД если таблица у тебя уже на клиенте (раз ты его выбираешь)?



Страницы: 1 вся ветка

Текущий архив: 2006.01.08;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.008 c
4-1130775758
sd_simf
2005-10-31 19:22
2006.01.08
"Остановить" приложение


4-1131020642
ne0n
2005-11-03 15:24
2006.01.08
и сново Hook(по ходу)


6-1127123265
Sam05
2005-09-19 13:47
2006.01.08
Работа с Сокетами


8-1123179611
Logun
2005-08-04 22:20
2006.01.08
Управление Winamp-ом


2-1135149669
speaker
2005-12-21 10:21
2006.01.08
поиск по базе данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский