Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Select error / 14 сообщений из 14, страница 1 из 1
27.05.2004, 18:59
    #32537513
Зернов Павел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
При выполнении ф-ции Retrieve() возникает ошибка datawindow: "Select error: Only cancel command is allowed when the rows are pending." Что сие означает?
...
Рейтинг: 0 / 0
28.05.2004, 09:55
    #32538018
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
У некоторых баз есть такое правило. Курсор следует либо дофетчить до конца, либо отменить операцию.
Т.е. если соединение находится в состоянии когда курсор открыт и еще не дофетчен до конца никакие другие команды не срабатывают.
У Вас что за база, что за драйвер?
Есть что-нибудь в событиии retrieverow?
...
Рейтинг: 0 / 0
28.05.2004, 16:07
    #32539203
Зернов Павел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Андрей! Спасибо большое.
В событии retrieverow в предке происходил вызов функции окраски строк.
После замены сценария предка на пустышку сообщение об ошибке больше не появляется.

Ещё вопрос, если можно. Иногда (не могу пока установить точно в каком случае) при сохранении после редактирования строки в этом же datawindow возникает ошибка:
"Row changed between retrieve and update.
No changes made to database.
UPDATE table SET column_1 = ?, column_2 = ?, column_3 = ? WHERE column_1 = ? AND column_2 = ? и т. д. ..."
Пытаюсь средствами Power Builder'а (Database -> Data manipulation) удалить эту строку, выдаётся сообщение:
"Row changed between retrieve and update. No changes made to database."
DELETE FROM table WHERE column_1 = ? AND column_2 = ? и т.д. ...".
Почему строка не удаляется?
У меня: Sybase SQL Anywhere Database Engine Version 5.5.04 Build #1867 + PowerBuilder 6.5
...
Рейтинг: 0 / 0
28.05.2004, 16:53
    #32539335
Levon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Попробуйте менять статус всех изменённых записей на NewModified!
Что-то типа
Код: plaintext
dw_2.SetItemStatus(ll_row, 0 ,Primary!,NewModified!)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
02.02.2010, 12:08
    #36444092
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Вот, напоролся на сабжевую ошибку, но не на ретриве и вообще не при прямом использовании Sybase SQL Anywhere Database. Приложение работает с ораклом, использует динамический курсор:

DECLARE tmp_curs DYNAMIC CURSOR FOR isqlsa_my;
PREPARE isqlsa_my FROM :is_select USING glb.cur_tr;
OPEN DYNAMIC tmp_curs USING :ll_factor_id, :ls_tag, :ll_factor_value ;

При этом запрос is_select всегда один и тот же (селект из функции оракла), различаются только передаваемые параметры. И весь блок работает, в общем, без ошибок, сваливаяс только при определённом наборе параметров. При этом сам запрос из оракла с данными параметрами проходит нормально, а сообщение, похоже, вызывается Adaptive Server® Anywhere, который используется РВ при работе с динамическими курсорами (так мануал говорит). Вот что можно сделать с такой ошибкой и причинами её возникновения?
...
Рейтинг: 0 / 0
02.02.2010, 12:45
    #36444222
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Что за бред
Пример в мануале просто для ASA
Раз вы работаете с Oracle значит и ошибка оттуда
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
02.02.2010, 15:33
    #36444807
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Ну, наверное я неверно перевёл мануал и у меня сложилось неверное представление, что для обработки динамических курсоров используется встроенный в БД модуль Anywhere, но ошибка точно не оракловая, а билдеровская.
...
Рейтинг: 0 / 0
02.02.2010, 15:36
    #36444816
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Это да
Проверьте ничего у вас асинхронно не отрабатывает?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
02.02.2010, 16:03
    #36444908
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
tiger_sc пишет:

> Ну, наверное я неверно перевёл мануал и у меня сложилось неверное
> представление, что для обработки динамических курсоров используется
> встроенный в БД модуль Anywhere

Бред.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.02.2010, 17:07
    #36445150
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select 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.
string ls_add_string, ls_select_string
int li_pos
// Set up select statement using passed parameters
ls_select_string = "SELECT DISTINCT " + col_parm + " FROM " + tab_parm
PREPARE sqlsa FROM :ls_select_string;

DECLARE dyn_cursor DYNAMIC CURSOR FOR sqlsa;

OPEN DYNAMIC dyn_cursor;  
if sqlca.sqlcode <  0  then
	MessageBox("DataBase Error!", sqlca.sqlerrtext)
	return sqlca.sqlcode
end if 

this.SetRedraw(false)
this.Reset( )

Do While sqlca.sqlcode =  0 
	Fetch dyn_cursor into :ls_add_string;
	if sqlca.sqlcode =  0  then
		this.AddItem(ls_add_string)
	elseif sqlca.sqlcode <  0  then
		MessageBox("Ошибка БД", sqlca.sqlerrtext)
		return sqlca.sqlcode
	else
		exit
	end if
Loop

this.SetRedraw(true)
Close dyn_cursor;

а то вот эта строка непонятна
Код: plaintext
OPEN DYNAMIC tmp_curs USING :ll_factor_id, :ls_tag, :ll_factor_value ;
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
03.02.2010, 07:58
    #36446120
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
spas2001,

Да строка то простая, с передачей параметров в запрос, допускается дакой синтаксис в РВ. Однако, пробовал уже переделать и на статический запрос без параметров, переформировывая запрос с учётом параметров перед объявлением курсора - та же фигня. Причём, в целом всё работает, но валится в одном случае из тысяч. Почему - не знаю.
...
Рейтинг: 0 / 0
03.02.2010, 09:37
    #36446216
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
неужели так трудно сделать это на датавинде или на датасторике?!
без всяких извращений с курсорами
...
Рейтинг: 0 / 0
03.02.2010, 12:02
    #36446615
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Так не я делал, но меня заставляют разгребать. Самое прикольное, что результат курсора всё равно выводится в ячейки датавиндова :о) Походу всё придётся переделывать, чем разбираться непонятно с чем.
...
Рейтинг: 0 / 0
03.02.2010, 13:01
    #36446846
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select error
Так переделайте на нормальный datawindow и все ваши извра.., т.е. проблемы будут решены
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Select error / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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