powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Oracle Forms 10 проблемы с функциями
25 сообщений из 61, страница 1 из 3
Oracle Forms 10 проблемы с функциями
    #39635166
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Возникла такая проблема:
В БД создала самую простенькую функцию, на вход которой передается одно значение.
Тестирую данную функцию в PL/SQL Developer - работает корректно.
Вставляю данную функцию в Forms и при компиляции вылетает ошибка "identifier название_функции must be declared".
Функцию создавала в схеме, под которой и делаю компил формы.
Forms к бд подконнектился, пользователь один и тот же.
Создавала Data Blocks на таблицах этого пользователя
Может быть кто-то знает как решить подобную проблему?
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635253
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описывайте проблему как-то более понятно. А то без хрустального шара не понятно.

White Fox...простенькую функцию...
термин "простенкую" крайне не очевиден. Приведите Ваш код. Как минимум описание ф-ции.

Нужно точно такую же, но с перламутровыми пуговицами ( С ) старый фильм

White FoxВставляю данную функцию в Forms и при компиляции вылетает ошибка "identifier название_функции must be declared".

Куда вставляете? В код пакета в Forms, в код тригера, в свойства поля, в овойства датаблока, в запрос для датаблока и так далее....

Ну и проверьте еще раз, что точно соединились с той же схемой и той же базой ))) ну и на всякий случай сделать дисконект и еще раз коннект )))

P.S.
На мой взгляд, весь код хранить в пакетах (формы и сервер сайд) - крайне разумный и очень удобный бест практис. Городить помойку в БД из отдельно лежащий ф-ции и процедур - не очень хорошо. IMHO
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635284
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
Описание функции: есть таблица, из которой выбирается несколько значений по переданному параметру.
Функцию вставляю в код триггера. Чтобы потом не было каких-то претензий: триггер WHEN-BUTTON-PRESSED.
Я уже несколько раз делала коннект и дисконнект, несколько раз проверила та же ли схема и все так, как и должно быть
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635304
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код. Как минимум заголовок:

create function f1 ( param1 in number ) return number is
....

тут же все станет понятно, какой у Вас тип параметров, какой тип результата, дополнительные фичи etc
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635325
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Foxсоздала самую простенькую функциюWhite FoxОписание функции: есть таблица, из которой выбирается несколько значений по переданному параметру."Простенькие" функции, - как правило, возвращают одно значение..
White Foxвылетает ошибка "identifier название_функции must be declared".Имхо, - нет прав или ошибка в название_функции.
White FoxФункцию вставляю в код триггераКод триггера покажите?
White FoxЯ уже несколько раз делала коннект и дисконнектА сам "билдер" перезапускать пробовали? Вспомнился анекдот: .. "- Фары протирал?! - Протирал! - По колесам стучал?! - Стучал! .." )
White FoxЧтобы потом не было каких-то претензийУ Oracle Forms?
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635360
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mRdUKE,
Функция возвращает несколько значений, "склееных" в одну строку.
Какие права надо дать на функцию, чтобы она спокойно выполнялась под пользователем, которому она принадлежит? И таблица, из которой выбираются данные, тоже принадлежит этому пользователю.
Код триггера самый банальный:
message(bd_cen.bd_cen#kat(izd));

Вот полный код функции:
create or replace function bd_cen#kat(p_id_izd number) return сhar is
izd char(300);
cursor c1 s
select k.kod||' '||k.ob||' '||k.nam
from bd_cen.katalog k
where k.id_kat=p_id_kat
and sysdate between k.dat_a and k.dat_k;
begin
open c1;
fetch c1 into izd;
close c1;

return(izd);
end bd_cen#kat;
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635375
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут же вопрос, это что за ПОРНОГРАФИЯ ?

White Fox
create or replace function bd_cen # kat(p_id_izd number) return сhar is
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635376
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может ли это быть как-то связанным с этой ошибкой?
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635380
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Что вас ТАК не устраивает?
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635389
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White FoxМожет ли это быть как-то связанным с этой ошибкой?

Нет. У меня на Forms 6.0 такое название функции тоже не работает

Есть тонкая грань, между эротикой и порнографией. Символ # в название ф-ции, это порнография.

На мой взгляд и Oracle Forms со мной солидарен.
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635394
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
У меня на Forms 6 такое название функции замечательно работает.
А то что символ # в названиях функций - порнография, исключительно ваше мнение, которое я озвучивать не просила.
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635395
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СОРРИ, не прав

Ему тип возврашаемых данных CHAR не нравится. Если изменить на Varchar2, то все должно работать

P.S. Но спецсимволы, как и русские буквы, в названиях идентификатор не использую. Может оно конечно и можно, но фиг его знает, когда и в каком языке это обернется боком.
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635403
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
Вообще сама функция сделана с типом varchar2, но к сожалению я не могу открыть код функции даже на просмотр из-за ошибки, которую скидывала ранее.
Сейчас на всякий случай убрала символ # из названия, но Forms все также ее не воспринимает
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635404
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Foxmessage(bd_cen.bd_cen#kat(izd));Сообщение именно "identifier bd_cen.bd_cen#kat must be declared", а не "identifier izd must be declared" ?
Версия БД?
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635406
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S. через какое нибудь время потребуется код перенести на другое базу данных. PostgreSQL, MySQL, Стебелек ( TM), выяснится, что там эти символы являются спец. символами.... будет много приятных чувств из-за необходимости перелапатить 100500 строк кода.

P.P.P.S. аналогично русские буквы. Оно может и работает. Но даже то, что русские буквы в UTF8 занимают ни один байт, а два.... может доставить очень много "радости". Например смените кодировку БД и идентификаторы перестанут "влезать" в отведенные им 30 байт. Лично я это проходил лет 15 назад с Menu от формсов. Перевели проект с 1251 на UTF8 - вылезли за пределы полей. Хорошо хоть использовали в считанном кол-ве случаев, а не дай бог все идентификаторы/название_полей в программе были бы такие.... тушите свет.
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635408
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mRdUKE,
Именно bd_cen, потому что когда я оставляю просто переменную izd, которая объявлена в триггере, он перестает выдавать эту ошибку
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635410
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
Мне сейчас это нужно сделать исключительно для учебы, поэтому страха о том что будет проблемы с переносом у меня нет, но спасибо за инфу, я учту
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635419
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут можно пойти с другой стороны, не пытаться найти из-за чего не работает
А пойти наоборот от действительно "простой ф-ции" и попытаться добавить нужный функционал

Ломаться может на чем угодно. Опечатка, типы параметров, имя, права, баги, коллеги-админы помогли.....


Код: sql
1.
2.
3.
4.
create or replace function test_function( p_id_izd  number ) return varchar2 is
begin
  return 'Передан параметр ' || to_char( param1 );
end;


и в when-button-pressed
Код: sql
1.
Message( test_function( 123 ) );


...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635420
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Fox,

Выполните (на триггер WHEN-BUTTON-PRESSED). Покажите результат?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
	str varchar2(4000); 
begin 
	select user||':'||count(*) 
	into str
	from user_objects where object_type='FUNCTION' and object_name='BD_CEN#KAT';
	message(str);
end;

...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635432
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
Не работает даже такая функция
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635441
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mRdUKE,

BD_CEN:1
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635481
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты видишь суслика? И я нет, а он есть. (c)
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635487
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Fox,

Добрый день,

Могу предложить вам сделать не использовать функцию , а написать ваш код в триггере кнопки блока формы.
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635488
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mRdUKEТы видишь суслика? И я нет, а он есть. (c)
Может это не суслик, а кот Шрёдингера? )))

White FoxLeonid Kudryavtsev,
Не работает даже такая функция
пациэнт скорее мерт, чем жив

White FoxmRdUKE,
BD_CEN:1
а тут вроде все наоборот. пациэнт вроде подает признаки жизни

Я бы решил, что White Fox не в ту базу коннектится (несколько хоумов на компьютере, разные tnsnames.ora указывают на разные сервера, PL/SQL developer лезит в один сервер, Forms в другой), но вроде функция есть... т.ч. я даже не знаю, что и думать
...
Рейтинг: 0 / 0
Oracle Forms 10 проблемы с функциями
    #39635496
White Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rf_mailWhite Fox,

Добрый день,

Могу предложить вам сделать не использовать функцию , а написать ваш код в триггере кнопки блока формы.
.

Дело в том что данная функция мне нужна в разных местах формы и для разных целей, а я честно говоря не очень хочу прописывать одно и то же несколько раз. Тем более это не единственная функция, которая не работает. У меня ругается на все функции
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Oracle Forms 10 проблемы с функциями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]