Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder; DataStore; SetTrans; Error; Ошибка / 7 сообщений из 7, страница 1 из 1
14.08.2004, 09:59
    #32649590
Григорий Ксендзовский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
Привет всем!
Есть жуткая ошибка в PB, причём я впервые наблюл её на 6-м.
С тех пор она кочует из версии в версию и только обрастает подробностями.
Поиск на Форуме по сабжам не дал ничего.
Эта плюха проявляется в DataStore. Код элементарен:
DATASTORE ds
ds = CREATE DataStore
ds.DataObject = 'd_emp'
ok = ds.SetTransObject( sqlca )
q = ds.Retrieve()

q возвращает НОЛЬ !!!
При этом соответствующее DataWindow совершенно невинное,
прямое как палка и работает как часы.
Чуть-чуть истории. Впкрвые я столкнулся с этим на 6-м. Там было
композитное dw, состоявшее из трёх: хедер, табличная часть и футер.
И вот на некоторых распечатках ТАБЛИЦА БЫЛА ПУСТА!
Происходило это в компилированной программе и только тогда,
когда печаталось в цикле. Ебстественно, для печати по DW было создано DS.
Вскрытие показало, что иногда в PBVM60.dll происходит сбой по ошибке
адресации. Но я тогда был начинающий на PB и дальше копать не стал. Я не умел добраться до ChildDataW. Но это была классическая ошибка, управляемая данными.
Сейчас, на 8-м и на 9-м, дело обстоит так. При создании DS на совершенно
простом и невинном DW оно ничего не ретривит. Когда я стал копать, то выяснилось, что ФУНКЦИЯ SetTransObject( sqlca ) ВОЗВРАЩАЕТ ОШИБКУ !!!
Причём эта ошибка has no explanation, = -1 и всё.
Иногда помогает замена SetTransObject() на SetTrans(), но не всегда. Ежели очень надо, то можно поиграть полями БД, но это уже чистое шаманство
Единственно что спасает, так это использование НЕВИДИМОГО DW вместо DS, но это, сами понимаете, решение за гранью кретинизма.
Самое же ужасное в этой ошибке то, что она НИКОГДА не проявляется, пока вы отлаживаетесь под PB -- команда RUN. ТОЛЬКО В КОМПИЛИРОВАННОЙ ПРОГРАММЕ, причём безразлично, до уровня .pbd or .dll.
PEOPLE! Знает ли кто-нибудь, как "съесть этот ма-а-аленький бифштекс"?
Если никто ничего не знает -- большая просьба поделиться всеми, даже самыми малейшими подозрюгами в адрес ф-ций SetTrans[...]() (i.e. нечёткая работа приложений, непонятное поведение DW и пр.)
Буду очень, крайне, чрезвычайно признателен.
...
Рейтинг: 0 / 0
14.08.2004, 14:17
    #32649678
Mykola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
если использовать n_ds, будет тот же результат или другой.
С такой ситуацией не встречался.
...
Рейтинг: 0 / 0
14.08.2004, 23:21
    #32649906
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
Григорий КсендзовскийПривет всем!
Есть жуткая ошибка в PB, причём я впервые наблюл её на 6-м.
...
Телепатов по-прежнему отсутствуют, но тем не менее...
Вы уверены, что DataObject, который вы подключаете строчкой
Код: plaintext
ds.DataObject = 'd_emp'
явным образом присутствует в одном из окон или описано в .pbr файле?
...
Рейтинг: 0 / 0
16.08.2004, 03:01
    #32650173
Deosfen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
to Григорий Ксендзовский , я тоже сталкивался с такой проблемой , я ее никак не победил. Может еще какие-нить будут версии
...
Рейтинг: 0 / 0
16.08.2004, 08:15
    #32650217
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
Филипп здесь http://sql.ru/forum/actualthread.aspx?tid=47306&hl=pbr писалСие есть FAQ.
Это не глюк, а четко документированное поведение. Когда компилишь в PBD, то ВСЕ объекты находящиеся в pibble, попадают в compile, если в EXE, то попадают только directly referenced objects, чтобы попали динамически назначенные, нужно при компиляции в EXE без PBD использовать PBR, читай хелп...
...
Рейтинг: 0 / 0
16.08.2004, 11:17
    #32650485
Сотников
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
Григорий Ксендзовский
Самое же ужасное в этой ошибке то, что она НИКОГДА не проявляется, пока вы отлаживаетесь под PB -- команда RUN. ТОЛЬКО В КОМПИЛИРОВАННОЙ ПРОГРАММЕ, причём безразлично, до уровня .pbd or .dll.


Дык при использовании DS программно задавая
ds.DataObject = 'd_emp'

d_emp должен быть прописан обязятельно в ресурсном файле:
our.pbl(d_emp)

и при компиляции в projectе укзан этот ресурсный файл к библиотеке или ко всей программе.
...
Рейтинг: 0 / 0
26.08.2004, 11:19
    #32666213
Григорий Ксендзовский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PowerBuilder; DataStore; SetTrans; Error; Ошибка
Огромное спасибо всем!!!
С уважением Г.К. aka GrayCat
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder; DataStore; SetTrans; Error; Ошибка / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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