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

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

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

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

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

я же говорил, что я НЕ ИСПОЛЬЗУЮ DBC.
DBSETPROP() не поможет
...
Рейтинг: 0 / 0
01.06.2006, 07:04
    #33764876
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Тогда, а как у тебя построен Remote View ? На каких таблицах ?
...
Рейтинг: 0 / 0
01.06.2006, 07:13
    #33764882
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Владимир САТогда, а как у тебя построен Remote View ? На каких таблицах ?на таблицах сервера ОРАКЛ. что за странный вопрос?
я ведь уже отписывал, что: --Eugene--
я создаю REMOTE VIEW без использования базы данных (DBC). я руками назначаю
Код: plaintext
CURSORSETPROP("SendUpdates", .T.)
, а также KeyFieldList и прочие атрибуты.
...
Рейтинг: 0 / 0
01.06.2006, 17:54
    #33766957
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
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
02.06.2006, 04:56
    #33767574
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
я спокоен
я спокоен

как я уже указывал ранее, я создаю "ЭТО" (ладно, пусть "ЭТО" называется 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
02.06.2006, 04:59
    #33767577
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Прошу прощения, там ошибочка в CURSORSETPROP("UpdatableFieldList", ...)
но несущественная
...
Рейтинг: 0 / 0
02.06.2006, 07:09
    #33767626
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Hi, --Eugene-- !
Но то что у тебя написано выше это по-моему сквозной запрос с сервера. А не Remote View. Т.е. через SELECT ... ты получил курсор в VFP. Теперь тебе надо так же через сквозной запрос отправить на сервер и команду DELETE ... . Вот и все.
...
Рейтинг: 0 / 0
02.06.2006, 08:06
    #33767652
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Владимир САHi, --Eugene-- !
Но то что у тебя написано выше это по-моему сквозной запрос с сервера. А не Remote View. Т.е. через SELECT ... ты получил курсор в VFP. Теперь тебе надо так же через сквозной запрос отправить на сервер и команду DELETE ... . Вот и все.

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

но с удалением проблема
...
Рейтинг: 0 / 0
02.06.2006, 08:16
    #33767665
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
--Eugene--нет. хотя это и якобы сквозной запрос, изменения в нем изменяют данные на сервере. вот.
но с удалением проблемаЗапрос который теперь в VFP конечно можно изменить и исправить. Но это не RV и его обратно не отошлешь кроме как сквозным запросом.
...
Рейтинг: 0 / 0
02.06.2006, 08:44
    #33767699
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
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
02.06.2006, 08:46
    #33767705
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Извини, но сейчас очень сильно занят. М.б. кто-то другой в дискуссию вступит. Потом постараюсь проверить. С спорах рождается истина.
...
Рейтинг: 0 / 0
02.06.2006, 08:47
    #33767706
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
для 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
02.06.2006, 08:50
    #33767710
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Владимир САЗапрос который теперь в 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
02.06.2006, 08:59
    #33767717
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли удалять записи из REMOTE VIEW ?
Alex_UstinovПопробуй на простой таблице
да я попробовал. и у меня нет проблем кроме проблемы с удалением

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

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

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

УДАЛЯЕТ !
)


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

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

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

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

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

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


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