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

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

хочу объединить три поля одной таблицы в одно


как сделать ©   (2004-04-27 21:29:00) 

Помогите!!!! Пожайлуста!!!!
Например, поля Фамилия, Имя, Отчество нужно объединить в одно, чтобы потом можно было отобразить в DBGride kak один столбец, а не как три.


paul_k   (2004-04-28 16:45:00) [1]

2 Соловьев
в BeeforePost строчку разобрать по пробелам первые два слова соотвественно по полям а астаток в третье поле...
и, кстати, не уверен что запрос
select name1+' '+name2+' '+name3 as supernameбудет редактируемым


Mim1   (2004-04-28 16:30:00) [2]

можно сделать calculated поле и вычислять кго на клиенте.


Соловьев   (2004-04-28 13:56:00) [3]


> Deniz ©   (28.04.04 13:54) [13]

это понятно.
а вот в гриде как? Думаю автору как раз это и будет нужно :)


Deniz   (2004-04-28 13:54:00) [4]

> Соловьев ©   (28.04.04 13:42) [11]
И сохранить. Для предупреждения сл-щих вопросов:
select name1, name2, name3, name1 || name2 || name3 fio from table
Показывать только fio а редактировать и сохранять name1, name2 и name3 (не в гриде) а отдельно
Знаю что это не правильно, в смысле сетевого трафика и т.д., но в теории возможно.


Val   (2004-04-28 13:46:00) [5]

>sniknik ©   (28.04.04 13:05) [8]

> А в стандарте SQL как записано? ;-)
в каком?

ansi SQL, кажется, он же SQL'92.


Соловьев   (2004-04-28 13:42:00) [6]


> В обоих случаях можно "извратиться" и нормально редактировать!

а сохранить?:)


Deniz   (2004-04-28 13:36:00) [7]

> Соловьев ©   (28.04.04 12:42) [7]
> следующий вопрос как потом это редактировать :)))

Вопрос звучал: "Например, поля Фамилия, Имя, Отчество нужно объединить в одно, чтобы потом можно было отобразить в DBGride kak один столбец, а не как три."
На что был дан ответ! Причем в двух вариантах, 1-на клиенте (Просто Я ©   (27.04.04 22:32) [1] ) 2-SQL запросом.
В обоих случаях можно "извратиться" и нормально редактировать!

> sniknik ©   (28.04.04 13:05) [8]
Да, для ODBC DBF это не работает, хотя BDE "понимает" +и ||.
Transact-SQL Reference. Это, как я понимаю, MS SQL Server? А ODBC драйвера тоже MS'овские? Видать в MS принято так делать конкатенацию строк.
Ну да ладно, как уж у автора будет работать, так он и напишет!


Соловьев   (2004-04-28 13:17:00) [8]


> sniknik ©   (28.04.04 13:05) [8]

думаю имелось ввиду LocalSQL


sniknik   (2004-04-28 13:05:00) [9]

> Странное утверждение!
> Работает в DBF/Oracle/InterBase и т.д.
IB я указал, оракл может быть не знаю
а вот с DBF решил проверить (может действительно упускаю чтото)

EOleException : [Microsoft][Драйвер ODBC dBase] Недопустимое использование символов вертикальной черты в выражении запроса ''kjhjkhkj' || NAME'
EOleException : [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword
EOleException : Недопустимое использование символов вертикальной черты в выражении запроса ''kjhjkhkj' || NAME'
(это Jet, не написал от кого ошибка)

какой драйвер еще проверить?

> А в стандарте SQL как записано? ;-)
в каком?

Transact-SQL Reference
+ (String Concatenation)
An operator in a string expression that concatenates two or more character or binary strings, columns, or a combination of strings and column names into one expression (a string operator).

Syntax
expression + expression


Соловьев   (2004-04-28 12:42:00) [10]

следующий вопрос как потом это редактировать :)))


Deniz   (2004-04-28 12:41:00) [11]

> sniknik ©   (28.04.04 08:50) [4]
> наоборот чаше используется плюс, а эта запись по моему только
> в IB и клонах (т.е. довольно редко).

Странное утверждение!
Работает в DBF/Oracle/InterBase и т.д.
А в стандарте SQL как записано? ;-)


ceval   (2004-04-28 12:27:00) [12]

Я можно маленький вопрос

возможно такое проделять с ADOTable ?


sniknik   (2004-04-28 08:50:00) [13]

> должно везде работать
ну конечно.
наоборот чаше используется плюс, а эта запись по моему только в IB и клонах (т.е. довольно редко).


Deniz   (2004-04-28 06:53:00) [14]

> Vemer ©   (27.04.04 23:07) [2]
> Select (Name1 + ' ' + Name2 + ' ' + Name3) as SuperName
> From My_Table
>
> Плюсы заменить согласно синтаксису используемой БД.

Так вроде:
Select (Name1 || ' ' || Name2 || ' ' || Name3) as SuperName From My_Table
должно везде работать


Vemer   (2004-04-27 23:07:00) [15]

Или так:

Select (Name1 + ' ' + Name2 + ' ' + Name3) as SuperName From My_Table

Плюсы заменить согласно синтаксису используемой БД.


Просто Я   (2004-04-27 22:32:00) [16]

procedure TDM.Table1фиоGetText(Sender: TField; var Text: String;
 DisplayText: Boolean);
begin
 Text :=фам.Value+'/ '+имя.Value+'/ '+отч.Value
end;


Наверх

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