Форум: "Базы";
Текущий архив: 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