Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Проблема с построением запроса   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.021 c
2-1202132846
VAD*Anti Gopn!k
2008-02-04 16:47
2008.03.02
Rich edit и картинки.


15-1201524459
DillerXX
2008-01-28 15:47
2008.03.02
MatAn music


15-1201559377
Kostafey
2008-01-29 01:29
2008.03.02
Если кто-то занимается разработкой Web-приложений в Java


2-1202561165
oleg_teacher
2008-02-09 15:46
2008.03.02
маска


2-1202292471
Sanyadmb
2008-02-06 13:07
2008.03.02
Как обрабатывать выделенные записи в DBgrid ?