powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / datastore
10 сообщений из 10, страница 1 из 1
datastore
    #33546952
sucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет всем. собрал данные из процедуры в datastore.как ети данные перекинуть в базу данных? :(
...
Рейтинг: 0 / 0
datastore
    #33547008
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suckerпривет всем. собрал данные из процедуры в datastore.как ети данные перекинуть в базу данных? :(
datastore.Update()
ну и при необходимости обработка ошибок COMMIT/ROLLBACK
...
Рейтинг: 0 / 0
datastore
    #33547027
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//===========================================================================================================
//Заполняем переменные для таблицы sys_abc.J_STM_rr
//============================================================
lds_ho - это типа datastore
===============================================
хреначим в переменные
ls_COMPLEX = f_s_notnull(lds_ho.object.J_STM_rr_COMPLEX )
ls_BRANCH = f_s_notnull(lds_ho.object.J_STM_rr_BRANCH)
ls_ID_JOUR = f_s_notnull(lds_ho.object.J_STM_rr_ID_JOUR)
ls_ID_BANK = f_s_notnull(lds_ho.object.J_STM_IN_ID_BANK)
ls_KODCLT = f_s_notnull(lds_ho.object.J_STM_IN_KODCLT)
ls_KVL = f_s_notnull(lds_ho.object.J_STM_IN_KVL)
ls_CLN_CLT = f_s_notnull(lds_ho.object.J_STM_IN_CLN_CLT)
ldt_DT1 = lds_ho.object.J_STM_IN_DT1
ldt_DT2 = lds_ho.object.J_STM_IN_DT2
//===========================================================================================================
//Заполняем sys_abc.J_STM_rr
//===========================================================================================================
DECLARE stm procedure for dbo.J_stm_rr @COMPLEX =:ls_COMPLEX, @BRANCH =:ls_BRANCH,
@ID_JOUR =:ls_ID_JOUR, @ID_BANK =:ls_ID_BANK,
@KODCLT =:ls_KODCLT, @KVL =:ls_KVL,
@CLN_CLT =:ls_CLN_CLT, @DT1 =:ldt_DT1,
@DT2 =:ldt_DT2, @REFERENCE =:ls_REFERENCE
using lt_Filialca;

Ну и дальше выполняем процедуру
execute stm;
...
Рейтинг: 0 / 0
datastore
    #33547558
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понятно, зачем такие извраты, когда можно просто DW настроить на нужное сохранение и сказать Update().
...
Рейтинг: 0 / 0
datastore
    #33547623
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа динамически!
...
Рейтинг: 0 / 0
datastore
    #33554922
sucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно пападробнее? вот мой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
dw_1 = create datastore
ls_sql ="execute dba.users ()"
ls_syntax = SQLCA.SyntaxFromSQL (ls_sql,'Style(Type=grid)',ls_errors)
IF Len(ls_errors) >  0  THEN
	MessageBox ("Error", "Error")
	return (- 1 )
END IF
dw_1.create(ls_syntax, ls_errors)
IF Len(ls_errors) >  0  THEN
MessageBox("Error","Error")
END IF
dw_1.settransobject(sqlca)
ll_result = dw_1.Retrieve()

IF ll_result <  0  THEN 
	destroy dw_1
	MessageBox("Info", "No data")
   return (- 1 )
END IF

проседура в dw_1 записывает такие поля с резултатами: ID, Name, Last_name. как ети данные из dw_1 перекинуть в базу данных ?
только если можно паподробнее со всеми commit и rollback при ошибке. я новичок в PowerBuilder. LAMA :(
...
Рейтинг: 0 / 0
datastore
    #33554977
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> sucker

Тут всё просто, если хочешь динамически, тот творишь процедуру например для insert - а в базу параметров (ID, Name, Last_name), эти параметры в цикле (dw_1.)считываешь в пременные соответствующего типа из datastore и exec proc (ID, Name, Last_name). Как выполнить процедуру, пример тоже привожу! Это вроде для SQL :

declare prov_insert Procedure for s_abc.MAB_DOC
@iddoc = :idd,
@obj = :ob,
@koduser = :kodus,
@dt_ct = :dt_c,
@COD_ER =:COD_ER OUTPUT,
@TXT_ER =:TXT_ER OUTPUT,
@ACC_CODE =:ACC_COD
using sqlca;
execute prov_insert;
close prov_insert;
if sqlca.SqlCode <> 0 then
messagebox("Ошибка!",'НЕ СМОГ ИСПОЛНИТЬ ПРОЦЕДУРУ С ID = ' + idd +' ' + sqlca.SQLErrText)
close prov_insert;
RETURN
end if
...
Рейтинг: 0 / 0
datastore
    #33555149
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если datastore создано через SyntaxFromSQL из процедуры, то операции модификации базы не будут прописаны. т.е. datastore не будет знать какой sql выполнять на вызов ф-ции update . это надо будет указать через ф-ю modify . (см. File->New->Tool->Datawindow Syntax).
...
Рейтинг: 0 / 0
datastore
    #33555490
sucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо всем. я сделал с циклом :)
...
Рейтинг: 0 / 0
datastore
    #33555588
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ты не сомневайся! Работает как часы! Проверено многолетней работой программы!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / datastore
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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