Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Import PBDOM_Document into DataStore without XML file / 15 сообщений из 15, страница 1 из 1
25.11.2004, 09:01
    #32798956
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Есть массив документов типа PBDOM_Document . Каждый документ подогнан под Import Template соответствующего DataStore , т.е. имеется и массив DataStore . Можно ли как-то загнать данные из массива документов в соответствующие DataStore без использования промежуточного звена в виде создания XML files и последующего их импорта через ImportFile ?

Буду очень признателен за любые идеи и помощь...
...
Рейтинг: 0 / 0
26.11.2004, 10:20
    #32800878
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Злые вы. Какие-то не хорошие. Уйду я от вас. Нет бы помочь коллеге. А вы...

Я думаю, может связь между элементом (атрибутом) из PBDOM_Document и наименованием поля в DataStore можно получить из Import Template ? Насколько трудоемок данный вариант? Не проще ли будет все же через XML file ? Не хочется данные сливать во временный файл по соображениям безопасности (данные секретные) и надежности работы системы.
Ах да, еще PowerBuilder 9.0.1 Build 7236
...
Рейтинг: 0 / 0
26.11.2004, 15:45
    #32801766
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Так вроде бы ImportString можно скормить XML. Или я чего-то не понимаю?
...
Рейтинг: 0 / 0
26.11.2004, 16:13
    #32801837
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Да, но как мне PBDOM_Document слить в String ? Прямых функций для этого как бы нет. Писать свой код для этого? Что-то я сомневаюсь в легкости этого пути.
Или я не прав? Если скажешь, как можно сделать то буду очень рад...
...
Рейтинг: 0 / 0
26.11.2004, 17:14
    #32801987
Guest_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Black SavageДа, но как мне PBDOM_Document слить в String ? Прямых функций для этого как бы нет. Писать свой код для этого? Что-то я сомневаюсь в легкости этого пути.
Или я не прав? Если скажешь, как можно сделать то буду очень рад...

А это не подходит?

автор
The following code declares an array to hold the elements returned from the GetContent method, which reads the PBDOM_DOCUMENT object named pbdom_doc:

PBDOM_OBJECT pbdom_obj_array[] ... pbdom_doc.GetContent(ref pbdom_obj_array)

The pbdom_obj_array array now contains one value representing the root element of pbdom_doc: <Root>.

To access the other nodes in pbdom_doc, the GetRootElement method is used with the GetContent method.

pbdom_doc.GetRootElement().GetContent & (ref pbdom_obj_array)

The pbdom_obj_array array now contains three values corresponding to the three child nodes of the root element of pbdom_doc: <Element_1>, <Element_2>, and <Element_3>.
...
Рейтинг: 0 / 0
29.11.2004, 08:53
    #32803113
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Похоже, народ совсем не работает с PBDOM . Ну ладно, нефига выпендриваться, будем делать через файлы ...
...
Рейтинг: 0 / 0
29.11.2004, 11:38
    #32803522
tedy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Black Savage Похоже, народ совсем не работает с PBDOM. Ну ладно, нефига выпендриваться, будем делать через файлы

Похоже это на извращение какое-то
...
Рейтинг: 0 / 0
29.11.2004, 12:31
    #32803712
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Может и изврат, тока другого пути нет. Никто ж ничего путного не предложил.
To ЗоринАндрей - это не очень тривиальная задача конвертить PBDOM_Document в нормальный String . Т.к. по суте, нужно воспроизводить структуру, которая получается при сохранении данных в файл с помощью SaveDocument .
To Guest_1 , похоже сам не понял чего он написал, т.к. готовый PBDOM_Document уже содержит в себе все необходимые данные.

Я сам хотел пробиться через Template соответствующего DataStore , используя конструкцию с Describe("DataWindow.Syntax") и тот факт, что мы можем легко получить имя столбца Describe( "#" + string(ll_i) + ".Name" ) . Но разбор сложной ветвистой структуры Template меня не вдохновил. Все было бы просто, если б наименования атрибутов в разных элементах были б разные, но они будут совпадать. К тому же, при импорте через файлы можно воспользоваться полезной фичей по диагностики ошибок Trace File .

Вообщем, затраты на программирование импорта без XML файла, мне кажутся, сопоставимыми с нашей основной задачей. Что не есть гуд...
...
Рейтинг: 0 / 0
29.11.2004, 13:38
    #32803913
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
А Вы,случайно, это не для отправки-приема документов в/из ЦБ делаете?
...
Рейтинг: 0 / 0
29.11.2004, 14:45
    #32804118
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
To urvas
Да-а-а!..
Может, поделишься своими идеями? А то вариться в собственном соку мне не в кайф...
...
Рейтинг: 0 / 0
29.11.2004, 15:17
    #32804211
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Может, в приватном порядке, а то осталным, наверное, не очень интересно. Для начала, может по почте - urvas()mail.ru
...
Рейтинг: 0 / 0
29.11.2004, 15:58
    #32804312
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Давай...
...
Рейтинг: 0 / 0
10.12.2004, 15:18
    #32823458
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
А ларчик просто открывался:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
ls_Syntax = ads_datastore.Describe("DataWindow.Syntax")
ll_Pos = Pos(ls_Syntax, "export.xml")
if IsNull(ll_Pos) then
	as_ErrorMessage = "Не удалось распознать синтаксис DataWindow."
	return false
end if
if ll_Pos =  0  then
	as_ErrorMessage = "Не удалось распознать синтаксис DataWindow."
	return false
end if
ls_Syntax = Mid(ls_Syntax, ll_Pos, Len(ls_Syntax) - ll_Pos)
ll_Pos = Pos(ls_Syntax, 'name="' + as_template + '" xml="<?xml')
if IsNull(ll_Pos) then
	as_ErrorMessage = "Не удалось найти шаблон " + as_template+ " для DataWindow."
	return false
end if
if ll_Pos =  0  then
	as_ErrorMessage = "Не удалось найти шаблон " + as_template+ " для DataWindow."
	return false
end if
ls_Syntax = Mid(ls_Syntax, ll_Pos + len('name="' + as_template + '" xml="<?xml') - &
						 5 , Len(ls_Syntax) - ll_Pos)
ll_NumCol = Pos(ls_Syntax, '>")')
if IsNull(ll_NumCol) then
	as_ErrorMessage = "Не удалось распознать шаблон " + as_template+ " в DataWindow."
	return false
end if
if ll_NumCol =  0  then
	as_ErrorMessage = "Не удалось распознать шаблон " + as_template+ " в DataWindow."
	return false
end if
ls_Syntax = Mid(ls_Syntax,  1 , ll_NumCol)
ll_Pos =  1 
do while ll_Pos <>  0 
	ll_Pos = Pos(ls_Syntax, '=~~"')
	if IsNull(ll_Pos) then exit
	if ll_Pos =  0  then exit
	ls_Syntax = Mid(ls_Syntax,  1 , ll_Pos) + '"' + Mid(ls_Syntax, ll_Pos +  3 , Len(ls_Syntax))
loop
ll_Pos =  1 
do while ll_Pos <>  0 
	ll_Pos = Pos(ls_Syntax, '~~"')
	if IsNull(ll_Pos) then exit
	if ll_Pos =  0  then exit
	ls_Syntax = Mid(ls_Syntax,  1 , ll_Pos -  1 ) + Mid(ls_Syntax, ll_Pos +  1 , Len(ls_Syntax))
loop
ls_ValueTmp = ""
if XMLParseString(ls_Syntax, ValNever!, ls_ValueTmp, TRUE, TRUE) <>  0  then
	as_ErrorMessage = ls_ValueTmp
	return false
end if

Это в первом приближении. Т.е. из Describe("DataWindow.Syntax") получаем шаблон для импорта, вырезаем оттуда ~ и получаем, что значением элемента или атрибута является наименование столбца в DataStore . На основе полученной таким образом строки ls_Syntax строим PBDOM_Document , который будет являться шаблоном для сравнения со структурой входящего PBDOM_Document (который и содержит необходимые данные для импорта в DataStore ). Вообщем, получилось достаточно красивое решение. Мне аж самому понравилось. Если будет у кого желание, могу выложить весь объект...
...
Рейтинг: 0 / 0
14.12.2004, 06:52
    #32825886
Andyn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Black SavageЕсли будет у кого желание, могу выложить весь объект... Есть такое желание. :) Похоже в скором времени придется вплотную работать с XML, вдруг пригодится. :)
...
Рейтинг: 0 / 0
14.12.2004, 11:44
    #32826293
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import PBDOM_Document into DataStore without XML file
Забирайте. Это бета версия...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Import PBDOM_Document into DataStore without XML file / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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