Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1202116130
trubin
2008-02-04 12:08
2008.03.02
Floppy and USB


2-1202469477
saNat
2008-02-08 14:17
2008.03.02
Формирование документа Word по шаблону, защищенному паролем


15-1201381800
VID
2008-01-27 00:10
2008.03.02
Определение объекта компонента под указателем мыши


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


3-1192518920
Александр
2007-10-16 11:15
2008.03.02
Представление информации из баз данных в виде дерева





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский