Форум: "Базы";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
ВнизПроблема с построением запроса Найти похожие ветки
← →
Mery (2007-10-10 08:56) [0]Здравствуйте, подскажите пожалуйста, как используя IBQuery написать запрос Update, если требуется поле Field1 заполнить данными поля Field2, но в таком виде:
Field2=12345 (это поле INTEGER), а значение в поле Field1 должно быть=
12-34 5 (это поле VARCHAR).
Второй вопрос:Как заполнить поле Field3(это поле VARCHAR) значениями из поля Field4(VARCHAR), начиная с третьего символа: пример значение в Field4="ААБВ", надо получить в Field3="БВ"?
← →
Сергей М. © (2007-10-10 09:15) [1]см. все касаемое темы "UDF" (ibase.ru)
← →
Sergey13 © (2007-10-10 09:19) [2]> [0] Mery (10.10.07 08:56)
А какой смысл вообще хранить производные от других полей?
← →
Desdechado © (2007-10-10 10:36) [3]> значение в Field4="ААБВ", надо получить в Field3="БВ
SUBSTRING
← →
evvcom © (2007-10-10 11:24) [4]
> А какой смысл вообще хранить производные от других полей?
Видимо, задание лабы такое :)
← →
Mery (2007-10-10 11:27) [5]>Сергей М. © (10.10.07 09:15) [1]
>см. все касаемое темы "UDF" (ibase.ru)
Нужно именно через запрос, через update
← →
evvcom © (2007-10-10 11:32) [6]
update MyTable set
Field1 = "12-34 5"
where Field2=12345
:-)
Ну а на 2-й тебе ответили в [3], повторяться не буду
← →
Desdechado © (2007-10-10 11:42) [7]> Нужно именно через запрос, через update
Ты сначала осиль, что такое UDF, а потом говори уже.
← →
Mery (2007-10-10 11:56) [8]>evvcom © (10.10.07 11:32) [6]
>update MyTable set
> Field1 = "12-34 5"
>where Field2=12345
Такую глупость я бы не спросила :-). Вопрос в том, что не конкретно это значение надо заменить, а по ВСЕМ значениям этого поля таблицы написать общий update.
← →
Desdechado © (2007-10-10 12:11) [9]> Вопрос в том
После стольких ответов это уже не вопрос, а нытье.
← →
Mery (2007-10-10 12:15) [10]>Desdechado © (10.10.07 12:11) [9]
Осталось только добавить:
Desdechado ©-ЛУЧШИЙ!!!!!
Desdechado ©-FOREVER!
Desdechado ©-THE FIRST!!!!!!!!!!!
← →
Desdechado © (2007-10-10 12:27) [11]а смысл?
← →
ЮЮ © (2007-10-10 12:31) [12]а без UDF что-то вроде
substring( cast(Field2 as varchar(5)), 1, 2) || "-" || ... в интербейзе нельзя?
← →
evvcom © (2007-10-10 12:32) [13]
> по ВСЕМ значениям этого поля таблицы написать общий update.
чтобы написать общий update, надо сформулировать общие правила того, что ты хочешь, а пока мы можем только телепатировать и отсылать к факам, UDF (видимо, что-то конкретно интербейзовское, с ИБ не знаком ваще :) и т.п. А я свой телепатор взаймы сегодня отдал.
← →
Anatoly Podgoretsky © (2007-10-10 12:36) [14]
Desdechado ©-ЛУЧШИЙ!!!!!
Desdechado ©-FOREVER!
Desdechado ©-THE FIRST!!!!!!!!!!!
Mery - лабу сдала
← →
Mery (2007-10-10 12:47) [15]>Anatoly Podgoretsky © (10.10.07 12:36) [14]
>Mery - лабу сдала
А вот это не так.
Это просто я польстила Desdechado ©-.
после его
>После стольких ответов это уже не вопрос, а нытье.
Пусть ему станет легче.
А продолжу мыслить в направлении:
>ЮЮ © (10.10.07 12:31) [12]
>а без UDF что-то вроде
> substring( cast(Field2 as varchar(5)), 1, 2) || "-" || ... в интербейзе нельзя?
Пробую
UPDATE recept SET name_ls=midstr(nrec,2,5), но на это в IBQuery ошибка: неизвестная функция.Почему??????? Как её подключить?
Если в unit пишу uses StrUtils, то используя эту функцию в unite всё нормально. А вот как всё-таки через запрос..
← →
Sergey13 © (2007-10-10 12:57) [16]> [15] Mery (10.10.07 12:47)
> Если в unit пишу uses StrUtils, то используя эту функцию
> в unite всё нормально.
Дело за малым - подключить этот модуль к ИБ. 8-)
← →
ЮЮ © (2007-10-10 13:01) [17]
> неизвестная функция.Почему
Потому что использовать надо лишь те функции, которые предоставляет сервер. Если нет таких, тогда пишут сами (то самое UDF).
Просто substring есть даже в Local SQL. Неужели в IB нет ничего подобного.
З.Ы. в конце концов 12345 можно разложить на 12 34 и 5, таким же образом как и 125 на 2 минуты и 5 секунд. Но тогда без ХП, наверное, не обойтись
← →
Desdechado © (2007-10-10 13:11) [18]> в IBQuery ошибка: неизвестная функция.Почему?
Потому что так и не прочитаноСергей М. © (10.10.07 09:15) [1]
см. все касаемое темы "UDF" (ibase.ru)
← →
Mery (2007-10-12 06:23) [19]В продолжении темы....
На Сайте Ibase.ru взяла библиотеку FreeUDFLib.dll (она содержит в том числе и интересующую меня функцию MID), поместила её в папку InterBase\UDF. Указала путь к этой папке в Delphi (в библиотеках), но тем не менее для IBQuery так эта функция и осталась неизвестной. В чём ошибка?
← →
ЮЮ © (2007-10-12 06:25) [20]> InterBase\UDF. Указала путь к этой папке в Delphi (в библиотеках)
> ,
Это нужно серверу InterBase, а не Delphi
← →
Mery (2007-10-12 06:29) [21]ЮЮ © (12.10.07 06:25) [20]
>Это нужно серверу InterBase, а не Delphi
Понимаю, а как подключить UDF к серверу InterBase?
← →
Mery (2007-10-12 06:44) [22]Декларацию функции declare external function... можно сделать через запрос? Это производится 1 раз или перед каждым вызовом функции?
← →
Mery (2007-10-12 07:11) [23]Всё поняла, открыв базу в IBExpert. Спасибо.
← →
Mery (2007-10-12 07:30) [24]Опять вопрос.
Объявила я эту функцию для БД в IBExpert. Но в Delphi опять ошибка при выполнении запроса с использованием функциии mid, что не находит "module name or entrypoint". Библиотека есть и в Interbase\bin и в Interbase\UDF. Чего опять не хватает?
← →
Виталий Панасенко(дом) (2007-10-12 09:17) [25]ты действительно до такой степени мало знаешь, или просто стебаешься ? с InterBase можно работать не только из Delphi... даже из тех языков, где нету MID...
← →
Desdechado © (2007-10-12 10:56) [26]> не находит "module name or entrypoint"
Имена функций в библиотеке при объявлении РЕГИСТРОЗАВИСИМЫЕ.
И читать Ibase.ru до посинения. Там ВСЕ есть. Пересказывать не вижу смысла.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.045 c