Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR / 10 сообщений из 10, страница 1 из 1
06.02.2007, 11:08
    #34308499
Владимир2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
PowerBuilder 9.0
Adaptive Server Anywhere Version 9.0
Хочу зафиксировать обновление в таблице поля ‘Ts’

1.Почему НЕ ОБНОВЛЯЕТ нижеприведенный CURSOR ?

2.Как с помощью нижеприведенного курсора
заполнить data window ‘dw_1’ ?
Желательно , чтобы пользователь сразу
Видел результат внесенных изменений,
color]

Код: plaintext
1.
2.
3.
4.
5.
Делаю согласно примеру в Help’e
// identity - имя обновляемой таблицы
UPDATE identity   
SET Ts =  88 . 88 	
//SET "identity"."Ts" =  88 . 88 	- так тоже неправильно	
WHERE CURRENT OF icur_struct ; // icur_struct - имя курсора
Является к тому же источником ошибки
Database C0038: SQLSTATE = 08S01ЪЪ[Sybase][ODBC Driver][Adaptive Server Anywhere] Communication Link failure: Communication Error

Код: 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.
Если закомментировать, ошибки нет. Проверял,
Подсчитывал кол-во прочитанных строк, извлекал
Содержимое конкретного столбца в текущей строке,
//+ MessageBox("", s.pp  )
Это работает, НО ОБНОВЛЕНИЕ - НЕ РАБОТАЕТ.

Как же обновить таблицу в конкретной строке
В столбце по имени ‘Ts’ ?
gs_identity s // variable 's' имеет type as structure 'gs_identity' 
OPEN icur_struct ; // открытие курсора,  имя которого " icur_struct ". 
DO 
FETCH icur_struct INTO 
:s.Tn, :s.pocada, :s.St, :s.kp, :s.Ts, :s.pp,
IF sqlca.SqlCode =  100  THEN 
		MessageBox("","E O J”)
		CLOSE  icur_struct; 
		EXIT 
END IF	
//+ MessageBox("", s.pp  )
// identity - имя обновляемой таблицы
double ld_ts
ld_ts = 88.88
//UPDATE identity
// не подходит SET Ts = 88.88	цвет значения 88.88 в скрипте тусклый
//-:s.Ts = 88.88
//- SET "identity"."Ts" = :s.Ts	
//++- нет SET "identity"."Ts" = ld_ts	
//WHERE CURRENT OF icur_struct ;

// нижеприведенные  строки кода тоже НЕ ОБНОВЛЯЮТ
s.ts = 88.88
UPDATE "identity"	// identity
//    SET "Ts" = :s.Ts // "Ts" - имя обновляемого поля в таблице  
SET "Tn" = :s.Tn,
"pocada" = :s.pocada,
"St" = :s.St,
"Kp" = :s.kp, 
"Ts" = :s.Ts,
"pp" = :s.pp
WHERE CURRENT OF icur_struct ;

	
LOOP WHILE true

// курсор icur_struct 
DECLARE icur_struct CURSOR FOR 
SELECT Tn,pocada,st,kp,Ts,pp
FROM identity  ; 
СПАСИБО.
...
Рейтинг: 0 / 0
06.02.2007, 18:19
    #34310370
Voitovych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
НЕУЖЕЛИ
КУРСОР
для ОБНОВЛЕНИЯ ТАБЛИЦ
НЕ ИСПОЛЬЗУЕТСЯ
НА ПРАКТИКЕ ?
...
Рейтинг: 0 / 0
06.02.2007, 18:34
    #34310412
ruha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
нет
...
Рейтинг: 0 / 0
07.02.2007, 17:52
    #34313655
Voitovych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
ГЛЮК PowerBuilder 9.0 ?
Код: plaintext
1.
2.
3.
4.
// CURSOR icur_paye НЕ ОБНОВЛЯЕТ, хотя в книгах PB5. 0  , PB6. 0  
// and into HELP убеждают, что работает
UPDATE identity 
SET pp = ls_pp
WHERE CURRENT OF icur_payer;
...
Рейтинг: 0 / 0
07.02.2007, 18:06
    #34313723
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Обновлять таблицы с помощью курсора можно.
Код: plaintext
1.
2.
3.
4.
DECLARE
OPEN
FETCH
UPDATE/DELETE
CLOSE
Только лучше этого не делать.
...
Рейтинг: 0 / 0
07.02.2007, 18:06
    #34313726
Ursego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Курсоры использовались в PB когда мы были молодыми и когда ещё не изобрели DataStore.
...
Рейтинг: 0 / 0
07.02.2007, 18:17
    #34313757
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Voitovych wrote:

> ГЛЮК PowerBuilder 9.0 ?

Не тебе, ламеру убогому, это писать.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.02.2007, 18:53
    #34313868
Владимир2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
авторОбновлять таблицы с помощью курсора можно.

DECLARE
OPEN
FETCH
UPDATE/DELETE
CLOSE
Только лучше этого не делать.

пЕРВЫЕ 2 СТРОКИ
DECLARE
OPEN

У МЕНЯ ИМЕЮТСЯ,
В КНИГАХ ПО pb5.0 and PB6.0, HELP
ТАК ХОРОШО НАПИСАНО,
ЧТО И НЕ ПОДОЗРЕВАЕШЬ,
как мне писвили псевдоним
авторНе тебе, ламеру убогому, это писать.

пускай будет и так

Однако,
авторТолько лучше этого не делать
ламер НЕ ПОЙМЁТ?
...
Рейтинг: 0 / 0
02.03.2007, 20:12
    #34368232
Mykola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
используй cursor в процедурах
...
Рейтинг: 0 / 0
07.03.2007, 17:45
    #34378253
Ursego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Может, курсоровский SELECT должОн запирать (lock) возвращаемые записи от изменения другими транзакциями чтоб WHERE CURRENT OF работало?
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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