Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Бьюсь головой об стену - яд не помогает...  [new]
Black Savage
Member

Откуда:
Сообщений: 736
Имеем:

PowerBuilder 10.5.1 Build 6662
Oracle 10g

Для бызы NLS_CHARACTERSET = UTF8
Разработка ведется, с использованием ODB ODBC Database Interface
Приложение коннектится через Native database driver

Создал, DataWindow object:
release 10.5;
datawindow(units=0 timer_interval=0 color=1073741824 processing=1 HTMLDW=no print.printername="" print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.canusedefaultprinter=yes print.prompt=no print.buttons=no print.preview.buttons=no print.cliptext=no print.overrideprintjob=no print.collate=yes print.preview.outline=yes hidegrayline=no grid.lines=0 )
header(height=120 color="536870912" )
summary(height=0 color="536870912" )
footer(height=0 color="536870912" )
detail(height=80 color="536870912" )
table(column=(type=char(4000) updatewhereclause=yes name=cf_deviation_number_list dbname="CF_DEVIATION_NUMBER_LIST" )
 retrieve="SELECT  getdeviationnumbervic(vic_tabcmp.cmpprog)  cf_deviation_number_list
FROM vic_tabcmp
WHERE vic_tabcmp.cmpdpt = :al_departments" arguments=(("al_departments", number)) )
text(band=header alignment="0" text="Cf Deviation Number List" border="0" color="33554432" x="5" y="4" height="76" width="1847" html.valueishtml="0"  name=cf_deviation_number_list_t visible="1"  font.face="Tahoma" font.height="-12" font.weight="400"  font.family="2" font.pitch="2" font.charset="204" background.mode="2" background.color="1073741824" )
column(band=detail id=1 alignment="0" tabsequence=32766 border="0" color="33554432" x="9" y="0" height="76" width="1842" format="[general]" html.valueishtml="0"  name=cf_deviation_number_list visible="1" edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=no  font.face="Tahoma" font.height="-12" font.weight="400"  font.family="2" font.pitch="2" font.charset="204" background.mode="2" background.color="1073741824" )
htmltable(border="1" )
htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" encodeselflinkargs="1" netscapelayers="0" pagingmethod=0 generatedddwframes="1" )
xhtmlgen() cssgen(sessionspecific="0" )
xmlgen(inline="0" )
xsltgen()
jsgen()
export.xml(headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 )
import.xml()
export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" )
export.xhtml()

Это DataWindow ретривится в Painter без всяких проблем. Также, SQL код
обрабатывается без проблем в SQL Developer. Когда ретрив идет из приложения, лезет
ошибка. Для теста сделал пустое окно с одним DW, т.е. код предков явно не влияет.
Ошибка:

SQLDBCode: 904
SQLErrText: Select Error: ORA-00904: : invalid identifier
SQLSyntax: SELECT getdeviationnumbervic(vic_tabcmp.cmpprog) cf_deviation_number_list
FROM vic_tabcmp
WHERE vic_tabcmp.cmpdpt = :al_departments
Row: 0


Для полноты и ясности картины привожу код функции:
CREATE OR REPLACE FUNCTION getdeviationnumbervic(
p_sample_id IN vic_tabcmp.cmpprog%TYPE,   p_separator IN VARCHAR2 DEFAULT ',') RETURN VARCHAR2 IS

 CURSOR cur_devnum IS
SELECT devnum
FROM vic_tabdev,
  vic_tabdevcmp
WHERE vic_tabdevcmp.cmpprog = p_sample_id
 AND vic_tabdevcmp.devprog = vic_tabdev.devprog
ORDER BY devnum ASC;

v_string VARCHAR2(3000) := NULL;
v_separator VARCHAR2(10) := NULL;
v_count NUMBER(9) := 0;

BEGIN

  -- Define a default separator if the one provided if empty or NULL

  IF LTRIM(RTRIM(nvl(p_separator,   ''))) IS
  NULL THEN
    v_separator := ',';
  ELSE
    v_separator := p_separator;
  END IF;

  -- Browse the deviation numbers
  FOR v_devnum IN cur_devnum
  LOOP

    IF v_devnum.devnum IS NOT NULL THEN
      v_string := v_string || v_devnum.devnum || v_separator || ' ';
    END IF;

    v_count := v_count + 1;
  END LOOP;

  IF v_count > 0 THEN

    IF v_string IS NOT NULL THEN

      -- Remove any spaces
      v_string := LTRIM(RTRIM(v_string));

      -- Remove last separator        
      v_string := SUBSTR(v_string,   1,   LENGTH(v_string) -LENGTH(v_separator));
    END IF;

    v_string := '*Caused deviations (' || v_count || '): ' || v_string;

  END IF;

  RETURN v_string;

EXCEPTION
WHEN others THEN
  DBMS_OUTPUT.PUT_LINE('Exception in GetDeviationNumberVic: ' || SQLCODE || ' - ' || sqlerrm);
  RAISE;

END getdeviationnumbervic;

Как мне кажется, дело в данных, которые в базе. Хотя, после дня боев я уже не знаю о
чем думать. Подскажите, кто что может. Направьте на путь истинный...
7 ноя 07, 16:13    [4886045]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Black Savage
Разработка ведется, с использованием ODB ODBC Database Interface
Приложение коннектится через Native database driver

А почему бы и приложению не ходить тогда через ODB ODBC Database Interface?
7 ноя 07, 16:56    [4886521]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Black Savage
Member

Откуда:
Сообщений: 736
Локшин Марк
А почему бы и приложению не ходить тогда через ODB ODBC Database Interface?

Марк, данный вопрос чисто риторический и не соответствует уровню моего оклада.
У нас PowerBuilder Professional, а в нем:
The PowerBuilder Professional and Desktop editions include only the ODBC interface.

Вот и приходится жить с таким дуализмом...
7 ноя 07, 17:05    [4886615]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
автор
У нас PowerBuilder Professional, а в нем:
The PowerBuilder Professional and Desktop editions include only the ODBC interface.

Вот и приходится жить с таким дуализмом...

Ну так возьмите Enterprise (временно) и посимотрите что там происходит. Вообще так разрабатывать - черевато, ибо разные интерфейсы у PB имеют свои особенности. Наталкивался на глюк native драйвера к MS SQL когда при использовании запроса с view (определенный запрос и определенный view) выборка возвращалась нормально, без всяких кодов ошибок, а на следующем запросе (любом) сваливалась с ошибкой. Причем лечилось заменой view его определение в create view! (или выполнением "пустого" запроса который завершится с ошибкой).
7 ноя 07, 17:17    [4886744]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Black Savage
Member

Откуда:
Сообщений: 736
Эх, Марк, не работал ты в буржуинских конторах.
Я на своей тачке никакой софт не могу поставить, ибо правов нет...
7 ноя 07, 17:22    [4886794]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Я бы начал с этого:
Раз на компе разработчика нельзя использовать native, значит проверить "пустое окно с одним DW" с использованием ODB на компе юзера.
7 ноя 07, 17:38    [4886946]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Black Savage
Эх, Марк, не работал ты в буржуинских конторах.
Я на своей тачке никакой софт не могу поставить, ибо правов нет...

Я думаю этот вопрос можно решить путем написания служебной записки или еще как... А так DataWindow вообще-то можно и в блокноте рисовать, чего уж там :)
7 ноя 07, 17:40    [4886956]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Black Savage
Member

Откуда:
Сообщений: 736
Щас народ с Oracle форума помог.
Дело было в правах. Я в шоке. Почему ошибка в приложении
вываливалась другая?

Ладно, хр..н с ней. Пошел править. Усем СПАСИБО!
7 ноя 07, 17:52    [4887056]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Геннадич
Member

Откуда: Алматы
Сообщений: 640
Black Savage
Щас народ с Oracle форума помог.
Дело было в правах. Я в шоке. Почему ошибка в приложении
вываливалась другая?

Ладно, хр..н с ней. Пошел править. Усем СПАСИБО!

Как это другая? Оно же говорило:SQLErrText: Select Error: ORA-00904: : invalid identifier
15 ноя 07, 14:30    [4920957]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Vadim Romanenko
Member

Откуда: Харьков, Украина
Сообщений: 1462
Хм, как раз хотел написать - а не под разными ли пользователями ведется разработка на ПБ и выполняется в рантайме :)

У меня такие глюки бывали именно в этой ситуации. Разработка под суперпользователем, а под обычным не работает. Или забывчивость указывать схему и проч...
30 сен 09, 15:15    [7725169]     Ответить | Цитировать Сообщить модератору
 Re: Бьюсь головой об стену - яд не помогает...  [new]
Vadim Romanenko
Member

Откуда: Харьков, Украина
Сообщений: 1462
Е-мое, поиск не всегда рулить :):):):) Извиняюсь за поднятие темы из глубины веков...
30 сен 09, 15:16    [7725177]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить