![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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