Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с построением запроса [D7, IB6.x]


Страницы:   1 2

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, а потом говори уже.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо