Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

select и создание поля [D6, IB6.x]


GIL ©   (2004-03-15 11:44:00) 

кто-нибудь подскажите как в запросе select создать поле приблизительно по следующей формуле: select family,name_,otch,fio=family+' '+name_+' '+otch from ...
нужное поле - fio


Zacho   (2004-03-15 13:14:00) [1]


> Johnmen ©  

Естественно.. :)


Johnmen   (2004-03-15 13:12:00) [2]

>Zacho ©   (15.03.04 12:35) [17]

Наверное, имелось в виду алиасы таблиц...:)


GIL   (2004-03-15 12:39:00) [3]

спасибо


Zacho   (2004-03-15 12:35:00) [4]

Хочешь хороший совет ?
В запросе из нескольких таблиц всегдауказывай аласы полей, т.е.: select f.family,n.name_, ..


GIL   (2004-03-15 12:28:00) [5]

там select family,name_,otch, family||name_||otch AS fio from manager m,family f,otch o,name_ n where (m.id_family=f.id)and(m.id_name_=n.id)and(m.id_otch=o.id)and(m.deleted=''N''


Соловьев   (2004-03-15 12:25:00) [6]

2 Vlad ©
ага, то я прогнал - думал ему список полей надо...


Соловьев   (2004-03-15 12:24:00) [7]

SQLSelect - что там?


Vlad   (2004-03-15 12:23:00) [8]


> GIL ©   (15.03.04 12:14) [8]
> сорри вот теперь я увидел, в чем прикол

Потому и говорят - в правильно поставленном вопросе заложено 90% ответа :-)


> но теперь он выдает ошибку на | |

Пробела быть не должно, т.е. вот так: ||
Напиши перед Active:=true строчку showmessage(QR.Sql.Text), и посмотри, возможно ты не правильно формируешь запрос


> Соловьев ©   (15.03.04 12:19) [10]

Так мы получим список полей, а не их значений


GIL   (2004-03-15 12:23:00) [9]

все заработало!! спасибо!! просто запятую не поставил!!
P.S. Будьте внимательнее!!!
(Ко мне это относится в первую очередь!!8)


GIL   (2004-03-15 12:21:00) [10]

не, тогда правильнее будет, просто посмотреть, есть-ли это поле или его нет, носмысла это не меняет


Соловьев   (2004-03-15 12:19:00) [11]

Имхо это правельнее:
Database.GetFieldNames( TableName, StringList.Items );


GIL   (2004-03-15 12:16:00) [12]

процедура должна выглядеть вот так:
procedure Listing(QR:TIBQuery;List:TStringList;SQLSelect,Field:String);
begin
 List:=TStringList.Create;
 with QR do begin
  Active:=False;
  SQL.Clear;
  SQL.Add(SQLSelect);
  Active:=True;
  First;
  if not IsEmpty then
   while not Eof do begin
    List.Add(FieldByName(Field).AsString);
    Next;
   end;
 end;
 List.Sorted:=True;
end;
но теперь он выдает ошибку на | |


GIL   (2004-03-15 12:14:00) [13]

сорри вот теперь я увидел, в чем прикол


GIL   (2004-03-15 12:13:00) [14]

привожу полный код:
procedure Listing(QR:TIBQuery;List:TStringList;SQLSelect,Field:String);
begin
 List:=TStringList.Create;
 with QR do begin
  Active:=False;
  SQL.Clear;
  SQL.Add('select name_ from name_ where deleted=''N''');
  Active:=True;
  First;
  if not IsEmpty then
   while not Eof do begin
    List.Add(FieldByName(Field).AsString);
    Next;
   end;
 end;
 List.Sorted:=True;
end;
ошибка выдается правильная, в том плане, что он пишет что не находит имеено то, что я "искал"
P.S. Не знаю.


Vlad   (2004-03-15 12:09:00) [15]


> GIL ©   (15.03.04 11:57) [5]

Я может чего не понял, но ИМХО, не стоит переменным давать имена "List" и "Field".
А вобще приведи полный код процедуры, а то ничего не понятно.

P.S. Что с любимым форумом ? (c)


GIL   (2004-03-15 11:57:00) [16]

это добавление значения поля в список, немного описался, List.Add(FieldByName(field).AsString);


Johnmen   (2004-03-15 11:55:00) [17]

>List.Add(FieldByName(field));

Это что ?


GIL   (2004-03-15 11:54:00) [18]

запрос прошел, но при обращении к полю пишет, что поле не найдено
field:='FIO';
....
List.Add(FieldByName(field));


GIL   (2004-03-15 11:52:00) [19]

ща попробуем


Johnmen   (2004-03-15 11:51:00) [20]

family||name_||otch AS fio


Наверх

Титульная страница Поиск, карта сайта Написать письмо