powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SetFullState
6 сообщений из 6, страница 1 из 1
SetFullState
    #37794915
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РВ10.5
Делаю выборки из БД в DataStore. Потом через какое-то время хочу восстанавливить сохраненное "вчера" (blob через GetFullState) первичное состояние DS используя SetFullState. Выдает результат (-1).
Пришлось сделать так:
1. Создаю DS-temp и через SetFullState восстанавливаю в нем blob, ОК.
2. Через RowsMove из DS-temp в DS перенесу строки, ОК.

Почему не получилось на прямую?
...
Рейтинг: 0 / 0
SetFullState
    #37795676
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ахез:)
Коллега, без обид, большее описание не повредит...
...
Рейтинг: 0 / 0
SetFullState
    #37797041
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001Ахез:)
Коллега, без обид, большее описание не повредит...
Согласен. Тем более, что ситуация уже немного изменилась, и не понятно почему. 8(
Теперь SetFullState выдает (1). В кратце делаю следующее:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
/*РВ10.5*/
ds_dat = Create DataStore
ds_dat.DataObject = ls_dataobject
ds_dat.SetTransObject( SQLCA)
ll_rows = ds_dat.Retrieve()
...
li_FileNum = FileOpen( ls_fullname, StreamMode!, Write!, LockWrite!, Replace!, EncodingUTF16LE!)
ds_dat.GetFullState( bl_dat)
FileWriteEx( li_FileNum, bl_dat)
FileClose( li_FileNum)
...
li_FileNum = FileOpen( ls_fullname, StreamMode!)
FileReadEx( li_FileNum, bl_dat)
FileClose(li_FileNum)
li_f = ds_dat.SetFullState( bl_dat)  /*li_f = 1*/
...
/*а теперь на этом месте РВ вообще слетает*/
ll_fnd = ds_dat.Find( "#1 = " + string(al_cod), 1, ds_dat.RowCount())


если концовку заменить и сделать так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
li_FileNum = FileOpen( ls_fullname, StreamMode!)
FileReadEx( li_FileNum, bl_dat)
FileClose(li_FileNum)
ds_tmp = Create DataStore
ds_tmp.DataObject = ls_dataobject
li_f = ds_tmp.SetFullState( bl_dat)
ds_dat.Reset()
ds_tmp.RowsMove(1, ds_tmp.RowCount(), Primary!, ds_dat, 1, Primary!)
...
/*теперь всё ОК*/
ll_fnd = ds_dat.Find( "#1 = " + string(al_cod), 1, ds_dat.RowCount())


Что то наверное не учитываю, либо чего-то не допонимаю.
В чем ошибка?
...
Рейтинг: 0 / 0
SetFullState
    #37797306
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если вместо #1 указать прямое имя столбца слетит?
Что-то с инициализацией списка колонок не то, надо проверить
...
Рейтинг: 0 / 0
SetFullState
    #37797454
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001А если вместо #1 указать прямое имя столбца слетит?..
тоже слетает.
Пробывал так посмотреть:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
...
ls_name = ds_dat.Describe( "#1.Name")    /*показывает*/
ds_dat.Describe(ls_name+".ID")  /*показывает*/

li_f = ds_dat.SetFullState( bl_dat)

ls_name = ds_dat.Describe( "#1.Name")    /*показывает*/
ds_dat.Describe(ls_name+".ID")  /*а здесь РВ слетает*/
...
Рейтинг: 0 / 0
SetFullState
    #37797515
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь самое прикольное, вставить пустую строчку, а потом блоб - слетит?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SetFullState
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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