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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.02.2011, 16:25
gjtrd gjtrd вне форума
Прохожий
 
Регистрация: 29.10.2010
Сообщения: 14
Репутация: 10
По умолчанию Посмотрите запрос, пожалуйста

Помогите, пожалуйста разобраться в оформлении SQL-запроса в делфи.

В IBConsole следующий запрос работает.
Код:
insert into Book(Vid, Data, kol, ID_Post, ID_dept, ID_MAt)
values('P', '22.12.2010', '123',(select ID_Post from Post where name_post='Поставщик3'), '4', (select ID_Mat from Mat where name_Mat='qweqw'));

А вот вариант Делфи - он почему-то не работает.

Код:
fDM.IBQuery1.SQL.Add('insert into Book(Vid, Data, kol, ID_Post, ID_dept, ID_MAt)');
fDM.IBQuery1.SQL.Add('values('+'comboBox1.Text'+', '+'DateTimePicker1.Date'+', '+'Edit1.Text'+',(select ID_Post from Post where name_post='+'DBLookupComboboxEh2.Text'+'), '+'Edit2.Text'+', (select ID_Mat from Mat where name_Mat='+'DBLookupComboboxEh3.Text'+'))');
Ответить с цитированием
  #2  
Старый 10.02.2011, 16:41
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Код:
fDM.IBQuery1.SQL.Add('insert into Book(Vid, Data, kol, ID_Post, ID_dept, ID_MAt)');
fDM.IBQuery1.SQL.Add('values('+comboBox1.Text+', '+DateTimePicker1.Date+', '+Edit1.Text+',(select ID_Post from Post where name_post='+DBLookupComboboxEh2.Text+'), '+Edit2.Text+', (select ID_Mat from Mat where name_Mat='+DBLookupComboboxEh3.Text+'))');
Вообще, надо смотреть, что за запрос у тебя получился, к примеру, таким вот образом:
Код:
ShowMessage(fDM.IBQuery1.SQL.Text);
и выбирать ID по названию, не есть хорошо, тем более, что DBLookupComboboxEh2 должен знать ID, то же самое и по DBLookupComboboxEh3.

Последний раз редактировалось Asinkrit, 10.02.2011 в 16:45.
Ответить с цитированием
  #3  
Старый 10.02.2011, 17:04
gjtrd gjtrd вне форума
Прохожий
 
Регистрация: 29.10.2010
Сообщения: 14
Репутация: 10
По умолчанию

Спасибо большое - разобрался. А из лукапа айди брать, подскажи пожалуйста?
Ответить с цитированием
  #4  
Старый 10.02.2011, 21:39
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

DBLookupComboboxEh2.KeyValue; если память не подводит..
Ответить с цитированием
  #5  
Старый 11.02.2011, 14:18
gjtrd gjtrd вне форума
Прохожий
 
Регистрация: 29.10.2010
Сообщения: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от Asinkrit
DBLookupComboboxEh2.KeyValue; если память не подводит..
Спасибо, получилось.
Еще один вопрос есть. Пытаюсь создать представление в интербейз. Пишет ошибку must specify column name for view select expression on line 1. Запрос ниже.
Код:
Create View Kniga AS 
Select B.ID_BOOK AS ID, B.DATA AS DATA, B.DoC AS NAKL, B.Vid AS VID, B.KOL AS KOL, B.PICE_Book AS CENA, P.Name_post AS NAME, M.Name_Mat AS MAT from Book B, Post P, Dept D, Mat M
Where (b.Id_post=p.ID_post) AND (B.ID_dept IS NULL) AND (b.ID_MAT=m.ID_MAT) 
union 
Select B.ID_BOOK AS ID, B.DATA AS DATA, B.DoC AS NAKL, B.Vid AS VID, B.KOL AS KOL, B.PICE_Book AS CENA, D.Name_dept AS NAME, M.Name_Mat AS MAT from Book B, Post P, Dept D, Mat M
Where (b.ID_dept=d.ID_DEPT) AND (B.ID_POST IS NULL) And (b.ID_MAT=m.ID_MAT);
Ответить с цитированием
  #6  
Старый 11.02.2011, 16:45
gjtrd gjtrd вне форума
Прохожий
 
Регистрация: 29.10.2010
Сообщения: 14
Репутация: 10
По умолчанию

Проблему вроде решил, спасибо.
Код:
Create View Kniga (ID, DATA, NAKL, VID, KOL, CENA, NAME, MAT) AS Select DISTINCT B.ID_BOOK AS ID, B.DATA AS DATA, B.DoC AS NAKL, B.Vid AS VID, B.KOL AS KOL, B.PICE_Book AS CENA, P.Name_post AS NAME, M.Name_Mat AS MAT from Book B, Post P, Dept D, Mat M
Where b.Id_post=p.ID_post AND B.ID_dept IS NULL AND b.ID_MAT=m.ID_MAT union all Select DISTINCT B.ID_BOOK AS ID, B.DATA AS DATA, B.DoC AS NAKL, B.Vid AS VID, B.KOL AS KOL, B.PICE_Book AS CENA, D.Name_dept AS NAME, M.Name_Mat AS MAT from Book B, Post P, Dept D, Mat M
Where b.ID_dept=d.ID_DEPT AND B.ID_POST IS NULL And b.ID_MAT=m.ID_MAT;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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