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