Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Вниз

SQL - функция получения длинны запрашиваемого поля   Найти похожие ветки 

 
Soi   (2010-01-09 14:30) [0]

Всем добрый день! Подскажите как, каким запросом  в Tquery получить длинну запрашиваемых данных (поля)?
Например, есть поле содержащее фамилию, мне в результате выборки надо видеть кол-во знаков из которых состоит эта фамилия. Пытаюсь сделать вот так:  Select name, length(surname) from base.db
Не помогает, вместо  слова LENGTH пробовал LEN, и все равно не помогает. При попытке запуска пишит , что-то типа неизвестной команды. У меня такое ощущение, что SQL в Delphi какой-то кастрированный, половину команд не понимает. В T-SQL при использовании компонента TADOQuery это делать 100% моно, сам лично делал. Подскажите, может в моем случае сиснтаксис неверен.


 
sniknik ©   (2010-01-09 14:48) [1]

> что SQL в Delphi какой-то кастрированный, половину команд не понимает.
Delphi вообще SQL не понимает, не его в нем... а вот в том, что используется (движке) и надо смотреть. в его справке.
у тебя судя по всему localsql bde (bde может "смотреть" и в какой нибудь другой движок, тогда будет другой sql), вот и посмотри в нем (файл справки - "LOCALSQL.HLP").


 
Anatoly Podgoretsky ©   (2010-01-09 15:42) [2]

> Soi  (09.01.2010 14:30:00)  [0]

Зачем?


 
Anatoly Podgoretsky ©   (2010-01-09 15:43) [3]

> sniknik  (09.01.2010 14:48:01)  [1]

Безполезно, нет такой функции


 
sniknik ©   (2010-01-09 15:46) [4]

> Безполезно, нет такой функции
догадываюсь, но научится смотреть в справку это не мешает.


 
Anatoly Podgoretsky ©   (2010-01-09 16:43) [5]

> sniknik  (09.01.2010 15:46:04)  [4]

Не мешает, но как правило размер практически никогда не нужен, но автор отмалчивается.


 
Soi   (2010-01-10 09:44) [6]

Мне это нужно, для того чтобы запросом извлечь часть поля, а не все полностью. Привожу пример: в поле хранится фамилия с инициалами, Петров В.В. мне надо запросом отсечь инициалы, т.е. результат должен быть "Петров". Я планировал сделать так: Select name, substring(surname from 1 for length(surname)-4). Логика думаю понятна, вычисляется длинна поля, от нее отнимаетя 4 (это и есть инициалы с двумя точками), а потом функция substring извлекает часть строки от 1 до полученного результата. Вот вроде бы все элементарно, но облом.........................функции Length нет. Я работаю с файлами .DB, как моно сделать по-другому?


 
sniknik ©   (2010-01-10 12:15) [7]

по другому ..., можно сделать на другом движке, но вообще экономить 4 байта на записи при передаче это смешно, "реж" на клиенте, и не всегда, а только при отображении, так ко всему прочему еще и быстрее работать будет (уберутся лишние вычисления).


 
Anatoly Podgoretsky ©   (2010-01-10 15:59) [8]

Еще раз справшиваю зачем, ведь не ради же самой цели, без применения.


 
Soi   (2010-01-10 18:27) [9]

Мне нужно запросом выбрать данные из 2-х таблиц. Критерий выбора это фамилия. Дело в том, что в одной их таблиц ФИО разбиты по отдельным столбцам, а в другой хранится в одном поле. Получается, что просто так я не могу их приравнять друг к другу, потому как данные в полях разные. Вот собственно причина моих мучений. Я хочу сделать запрос типа: Select "name"."base.db", "surname"."base.db", "ownername"."base1.db" from base.db, base1.db where "surname"."base.db"=(select substring("ownername"."base1.db" from 1 for length("ownername"."base1.db")-4)) .

Мне бы просто совет, как можно это сделать, или каким другим путем пойти? А то все говорят, что на другом движке это моно реализовать, а конкретики никто не говорит.  Я и сам понимаю про другой джвижок, если бы я имел БД на MS SQL, я бы не парился, уже давно бы все сделал. Там и функция LENGTH есть, и всего остального добра навалом. Но у меня вот 2 файла с долбанным расширением DB и никуда мне не дется от этого, а сделать надо позарез это.


 
sniknik ©   (2010-01-10 18:39) [10]

ты сам говорил
> В T-SQL при использовании компонента TADOQuery это делать 100% моно, сам лично делал.
и в чем проблема? делай именно так как делал.


 
Soi   (2010-01-11 04:04) [11]

ты о чем говоришь!!!? Там была БД на MS SQL, а здесь просто 2 DB  файла. Ты мне скажи каким образом я подключусь к ним используя adoqeury? Ну даже если как-то полключусь, движок же другой, вы же здесь сами про это говорили. Тут не в компоненте дело..............


 
sniknik ©   (2010-01-11 07:44) [12]

> Ты мне скажи каким образом я подключусь к ним используя adoqeury?
Jet, ISAM Paradox 4.x

> движок же другой, вы же здесь сами про это говорили.
именно, и у другого движка другие возможности, другой хелп.

> Тут не в компоненте дело..............
точно.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
1-1263401544
Nik
2010-01-13 19:52
2011.08.21
создание плагинов


1-1262678404
Michail89
2010-01-05 11:00
2011.08.21
Завершение дочернего процесса


15-1304314820
erutan
2011-05-02 09:40
2011.08.21
ошибка при загрузке Delphi


2-1297704242
Criptonik
2011-02-14 20:24
2011.08.21
процесс копирование файлов


1-1263466343
NBAH1990
2010-01-14 13:52
2011.08.21
Копирование текста из Ворда в RichViewEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский