Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / GUID и формы 6 / 5 сообщений из 5, страница 1 из 1
24.08.2011, 09:45
    #37409132
Тифа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID и формы 6
На форме есть несколько полей GUID, в базе они типа RAW, но так как на форме у полей нет типа RAW им установлен тип CHAR(32)
При нажатии на кнопку идет отправка в базу, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
	ls_A   a%rowtype;
begin
	ls_A.b := :A.b;
           ls_A.c := :A.c;
	proc(ls_A);
end;
/

Procedure proc (pA in out a%rowtype)

В процедуре я сразу делаю вставку в отладочную таблицу
в итоге ls_A.b остается неизменным, а ls_A.c из AA1F6D3AC13B1932E0440003BA195641 превращается в AA1F6D3AC13B1932E0440003BA1956416C070101000000000F270C1F0000000000000000000000000000000000000000

Версия оракла 11.2.0.2

Куда можно капнуть?
...
Рейтинг: 0 / 0
25.08.2011, 14:16
    #37411742
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID и формы 6
Поиск по словам "raw cast" выдал массу тем, например http://www.sql.ru/forum/actualthread.aspx?tid=722683&hl=cast%20raw
...
Рейтинг: 0 / 0
26.08.2011, 06:54
    #37412732
Тифа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID и формы 6
hextoraw делал без эфекта
проблема имено в передаче параметра rowtype, сделал вход как отдельные параметры стало работать, но все равно интересно от чего бажит так
...
Рейтинг: 0 / 0
26.08.2011, 13:34
    #37413495
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID и формы 6
Тифаhextoraw делал без эфекта
Не верю (C)

Тифапроблема...от чего бажит так
Некорректное приведение типов.
Дефолтное приведение типов отрабатывает не так, как ты ожидаешь. Вывод - пользоваться правильными (одинаковыми) типами и всегда делать приведение типов руками. Тогда можно рассчитывать на предсказуемый (описанный в документации) результат.

IMHO

в базе они типа RAW, но так как на форме у полей нет типа RAW им установлен тип CHAR(32)
1. Блок построить на View или триггерах. Из базы возвращать не RAW, а CHAR. Из RAW в CHAR преобразовывать явно с помощью RawToHex.
При нажатии на кнопку идет отправка в базу
2. Делать явное преобразование типа CHAR в RAW с помощью вызова HexToRaw. Желательно на стороне сервера.
...
Рейтинг: 0 / 0
26.08.2011, 15:55
    #37413869
Тифа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GUID и формы 6
хех врать мне как бы смысла нет
из базы raw преобразуется rawtohex, обратно hextoraw, и то и другое на стороне клиента
передавать чар с клиента в базу не тот вариант который мне нужен, я ж хочу структуру передать и с ней потом работать, зеркало и так работает с равом
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / GUID и формы 6 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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