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