powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли удалять записи из REMOTE VIEW ?
25 сообщений из 36, страница 1 из 2
Можно ли удалять записи из REMOTE VIEW ?
    #33757262
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если используешь
Код: plaintext
DELETE
или
Код: plaintext
DELETE-SQL
, пытаясь удалить записи из REMOTE VIEW, они не удаляются из таблицы на сервере.
Возможно ли удалить записи из таблицы на сервере с помощью REMOTE VIEW ?
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33757355
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читай TABLEUPDATE() и DBSETPROP()
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33757614
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMedЧитай TABLEUPDATE() и DBSETPROP()если вы намекаете на DeleteCmd, то что делать, если я не пользуюсь CursorAdapter-ами ?

я создаю REMOTE VIEW без использования базы данных (DBC). я руками назначаю
Код: plaintext
CURSORSETPROP("SendUpdates", .T.)
, а также KeyFieldList и прочие атрибуты.

как я могу изменить IndertCmd/UpdateCmd/DeleteCmd ? (если вааще могу)
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33757669
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь не про курсорадаптер, а про курсоры. Они имеют некоторые свойства. Эти свойства задаются командами CursorSetProp(). Товарищ просто немного перепутал.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33762153
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящийРечь не про курсорадаптер, а про курсоры. Они имеют некоторые свойства. Эти свойства задаются командами CursorSetProp(). Товарищ просто немного перепутал.ё маё
что же из вас клещами-то все нужно тянуть

ну скажите пожалуйста, что именно я должен сделать ?
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33762254
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
ну скажите пожалуйста, что именно я должен сделать ?

1. Создать DBC
2. Создать в DBC, RemoteView
3. Настроить RV
4. Утилитой GenDBC посмотреть код созданный построителем
5. Теперь если, что не понятно, задавать вопросы.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33764849
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist1. Создать DBC
2. Создать в DBC, RemoteView
3. Настроить RV
4. Утилитой GenDBC посмотреть код созданный построителем
5. Теперь если, что не понятно, задавать вопросы.ну что, я посмотрел. там везде DBSETPROP()

я же говорил, что я НЕ ИСПОЛЬЗУЮ DBC.
DBSETPROP() не поможет
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33764876
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда, а как у тебя построен Remote View ? На каких таблицах ?
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33764882
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САТогда, а как у тебя построен Remote View ? На каких таблицах ?на таблицах сервера ОРАКЛ. что за странный вопрос?
я ведь уже отписывал, что: --Eugene--
я создаю REMOTE VIEW без использования базы данных (DBC). я руками назначаю
Код: plaintext
CURSORSETPROP("SendUpdates", .T.)
, а также KeyFieldList и прочие атрибуты.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33766957
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Eugene!

1) Не надо нервничать! Не забывай что тут тебе никто ничего не обязан делать
:) А если ты невнятно объяснил свою прроблему то не обижайся что тебе что-то
не то советуют...
2) То что ты создаёшь, а создаёшь ты видимо "это" при помощи команды
SQLEXEC(lnSome, "SELECT * FROM SomeTable", "MyCursor") - называется SPT
курсором а никак не RemoteView.
3) SPT курсор действительно нужно настраивать для обновления при помощи
установления ряда его свойств через CursorSetProp() одного лишь свойства
SendUpdates =.T. недостаточно, а помочь с настройкой других свойств никак
невозможно не имея перед собой структуры изменяемой таблицы и твоего кода.
если тебя интересует просто список влияющих на процесс обновления свойств,
то это: Tables, KeyFieldList, UpdatableFieldList, UpdateNameList - отчасти
влияют WhereType, UpdateType (хотя часто их оставляют в состоянии по
умолчанию).
Кроме того про TableUpdate() тебе совершенно не напрасно говорили - даже в
3-м режиме буферизации эта функция крайне важна, а в 5-м (в котором IMHO и
следует работать по возможности) без неё вообще никакие изменения никуда не
попадут! кроме того использование этой функции позволит проконтролировать
процесс сохранения изменений, поймать возникшую ошибку, и через AERROR()
получить детальную информацию о том почему же именно не прошло сохранение.
4) Для начала всё-же создай RemoteView в дизайнере, настрой для него все
параметры обновления, потом открой его и проверь что всё работает как и
требуется, и наконец после этого при помощи CURSORGETPROP() посмотри какие
же значения имеют вышеуказанные свойства - это должно помочь в понимании
механизма, и потом ты уже сможешь сам назначить эти свойства, не прибегая к
помощи RemoteView дизайнера. Только не путай DBGETPROP() с CURSORGETPROP() -
по сути они показывают для RemoteView одну и ту-же информацию, но в
несколько различных разрезах - тебе нужен как раз второй вариант.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767574
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я спокоен
я спокоен

как я уже указывал ранее, я создаю "ЭТО" (ладно, пусть "ЭТО" называется SPT-курсором) без помощи DBC, а руками:
Код: 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.
52.
53.
54.
55.
56.
57.
LOCAL ;
	cConnectionString as String, ;
	hConn as Long

cConnectionString = ;
	"driver={The Oracle Driver};" ;
	+ "uid=user;" ;
	+ "pwd=password;" ;
	+ "server=server;" ;
	+ "dsn=server;" ;
	+ "dbq=server;"

hConn = SQLSTRINGCONNECT(m.cConnectionString)

cSQLString = ;
	"select " ;
			+ "t1.id as t1_id, " ;
			+ "t1.name as t1_name, " ;
			+ "t2.id as t2_id, " ;
			+ "t2.name as t2_name " ;
		+ "from " ;
			+ "table1 t1, " ;
			+ "table2 t2 " ;
		+ "where " ;
			+ "t1.id = t2.id (+) "

LOCAL ;
	cCursorName as String, ;
	res as Integer

cCursorName = SYS( 2015 )

res = SQLEXEC(m.hConn, m.cSQLString, m.cCursorName)
IF m.res !=  1 
	MESSAGEBOX("Ошибка:" + CHR( 13 ) + MESSAGE(), MB_ICONSTOP, "Ошибка")
	RETURN .F.
ENDIF

CURSORSETPROP("Buffering", DB_BUFOPTTABLE, m.cCursorName)
CURSORSETPROP("Tables", "user.table1,user.table2", m.cCursorName)
CURSORSETPROP("KeyFieldList", "t1_id,t2_id", m.cCursorName)
CURSORSETPROP( ;
	"UpdatableFieldList", ;
	"t1_id," ;
	+ "t1_name," ;
	+ "t2_id," ;
	+ "t2,t2_name", ;
	m.cCursorName)
CURSORSETPROP( ;
	"UpdateNameList", ;
	"t1_id user.table1.id," ;
	+ "t1_name user.table1.name," ;
	+ "t2_id user.table2.id," ;
	+ "t2_name user.table2.name", ;
	m.cCursorName)
CURSORSETPROP("UpdateType",  1 , m.cCursorName)
CURSORSETPROP("WhereType", DB_KEYANDTIMESTAMP, m.cCursorName)
CURSORSETPROP("SendUpdates", .T., m.cCursorName)
после чего удаляю запись из "ЭТОГО" SPT-курсора:
Код: plaintext
DELETE IN (m.cCursorName)
и делаю COMMIT:
Код: plaintext
1.
2.
IF NOT TABLEUPDATE( 2 , m.cCursorName)
	MESSAGEBOX("Ошибка: " + CHR( 13 ) + MESSAGE(), MB_ICONSTOP, "Ошибка")
ENDIF
срабатывает БЕЗ ошибки, но на сервере запись НЕ удаляется.
че делать ?

а то, что вы рассказали, это я всё вкурсе, и там нет того, что мне бы помогло
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767577
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, там ошибочка в CURSORSETPROP("UpdatableFieldList", ...)
но несущественная
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767626
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi, --Eugene-- !
Но то что у тебя написано выше это по-моему сквозной запрос с сервера. А не Remote View. Т.е. через SELECT ... ты получил курсор в VFP. Теперь тебе надо так же через сквозной запрос отправить на сервер и команду DELETE ... . Вот и все.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767652
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САHi, --Eugene-- !
Но то что у тебя написано выше это по-моему сквозной запрос с сервера. А не Remote View. Т.е. через SELECT ... ты получил курсор в VFP. Теперь тебе надо так же через сквозной запрос отправить на сервер и команду DELETE ... . Вот и все.

нет. хотя это и якобы сквозной запрос, изменения в нем изменяют данные на сервере. вот.

но с удалением проблема
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767665
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--нет. хотя это и якобы сквозной запрос, изменения в нем изменяют данные на сервере. вот.
но с удалением проблемаЗапрос который теперь в VFP конечно можно изменить и исправить. Но это не RV и его обратно не отошлешь кроме как сквозным запросом.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767699
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP9SP1-Ora10gR2
To --Eugene--
Попробуй на простой таблице.
Код: plaintext
1.
2.
3.
4.
5.
6.
Oracle-Таблица
create table A1
( AA VARCHAR2( 10 ) not null,
  BB DATE not null,
  ID NUMBER not null)
alter table A1
  add constraint PK_A1 primary key (ID)
для Init формы (грид grd на форме)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
lcConn = Sqlconnect('Name','User','psw')
Sqlexec(lcConn,'select * from au.A1',lcCur)
this.grd.RecordSourceType =  1  
this.grd.RecordSource = lcCur
Cursorsetprop("Tables","A1",lcCur)
Cursorsetprop("SendUpdates" ,.T.,lcCur)
CursorSetProp("KeyFieldList" ,"ID",lcCur)
Cursorsetprop("UpdatableFieldList","AA,BB",lcCur)
Cursorsetprop("UpdateNameList","ID,AA,BB",lcCur)
Сообщи Результат.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767705
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, но сейчас очень сильно занят. М.б. кто-то другой в дискуссию вступит. Потом постараюсь проверить. С спорах рождается истина.
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767706
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для Init формы (грид grd на форме)

lcConn = Sqlconnect('Name','User','psw')
Sqlexec(lcConn,'select * from Shema .A1',lcCur)
this.grd.RecordSourceType = 1
this.grd.RecordSource = lcCur
Cursorsetprop("Tables","A1",lcCur)
Cursorsetprop("SendUpdates" ,.T.,lcCur)
CursorSetProp("KeyFieldList" ,"ID",lcCur)
Cursorsetprop("UpdatableFieldList","AA,BB",lcCur)
Cursorsetprop("UpdateNameList","ID,AA,BB",lcCur)
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767710
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САЗапрос который теперь в VFP конечно можно изменить и исправить. Но это не RV и его обратно не отошлешь кроме как сквозным запросом.
ё маё

я же написал русским языком:
--Eugene--хотя это и якобы сквозной запрос, изменения в нем (в курсоре) изменяют данные НА СЕРВЕРЕ
я же понятно написал ?
я же написал - "на сервере", а не "в курсоре". а вы сами-то попробуйте.
по-моему, сами фоксовики об этой фиче не знают, что можно делать RV БЕЗ ИСПОЛЬЗОВАНИЯ DBC

прошу прощения за резкий тон, но, похоже меня здесь никто не понимает ВААЩЕ

а именно для таковых я уточняю, что под фразой "изменения в нем (в курсоре) изменяют данные" я понимаю следующее:
я пишу (в VFP):
Код: plaintext
REPLACE t1_name WITH "NewValue" IN (m.cCursorName)
и делаю COMMIT:
Код: plaintext
TABLEUPDATE( 2 , m.cCursorName)
, а тем временем НА СЕРВЕРЕ происходит изменение данных, соответствующих изменяемым полям в курсоре фокса

я ясно изъяснил ?

ну а вот с удалением (в который раз уже я повторяю) - беда. НА СЕРВЕРЕ запись не удаляется, хотя В VFP она помечена на удаление и TABLEUPDATE() отрабатывает БЕЗ ошибок
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767717
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovПопробуй на простой таблице
да я попробовал. и у меня нет проблем кроме проблемы с удалением

только вот у меня VFP8SP1. может из-за этого ?..
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767723
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VFP8SP1 все было Ок.
Стандартно Курсор посылает обновления на grd.AfterRowColChange()
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767743
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovВ VFP8SP1 все было Ок.
Стандартно Курсор посылает обновления на grd.AfterRowColChange()
похоже, и вы меня тоже не понимаете
я говорю не про нотификацию грида или чего бы то ни было при изменении локального курсора
я говорю совершенно абстрактно от всех визуальных и прочих объектов объектно-ориентированной части среды FoxPro
я говорю о связи локального курсора с удаленной серверной таблицей, об изменении этого курсора и о синхронизации этих изменений с той удаленной таблицей

что ж за день седня такой... :(

впору писать на лбу маркером "МЕНЯ НИКТО НЕ ПОНИМАЕТ :("
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767775
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спокойно. Все хорошо.
Попробуй
CURSORSETPROP("WhereType", DB_KEYANDMODIFIED , m.cCursorName)
Попробуй
CURSORSETPROP("UpdateType", 2 , m.cCursorName)
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767862
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovСпокойно. Все хорошо.
Попробуй
CURSORSETPROP("WhereType", DB_KEYANDMODIFIED , m.cCursorName)
Попробуй
CURSORSETPROP("UpdateType", 2 , m.cCursorName)

УДАЛЯЕТ !
)


но тока мне это не подходит
я не могу каждый раз при обновлении (UPDATE) удалять записи, поскольку я запрашиваю не все поля таблицы
((((((((
...
Рейтинг: 0 / 0
Можно ли удалять записи из REMOTE VIEW ?
    #33767918
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только не бейте

а оно работает!
и с первым типом обновления тоже!
но где же мой косяк-то ?

даа... весь день парил вам мозги

прошу прощения

ладно. буду искать, где сам напортачил

даа....
ё маё...
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли удалять записи из REMOTE VIEW ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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