Главная страница
    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.011 c
2-1135149994
chelovek
2005-12-21 10:26
2006.01.08
Новый компонент.


2-1134912561
Мадик777
2005-12-18 16:29
2006.01.08
Опять SQL


1-1133955846
Aleksandr.
2005-12-07 14:44
2006.01.08
Как определить видимость дочернего окна?


2-1134926705
Silica
2005-12-18 20:25
2006.01.08
Объясните, пожалуйста


14-1134651399
Виталий Панасенко
2005-12-15 15:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский