powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто как сохраняется ?
5 сообщений из 5, страница 1 из 1
Кто как сохраняется ?
    #33391309
ВладикК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть небольшая проблема, проект сетевой вроде б как,
Визуал Фокс 8

собственно проблема сохранения,

есть формочка в нее пользователь вбивает данные
нажимает на сохранить и происходит сброс инфы в базу примерно так

SELECT table1
SET ORDER TO idtable1
IF LOCK("0","table1")
CALCULATE MAX(table1.idtable1) TO max_idtable1 IN table1
SCATTER MEMVAR BLANK
m.idtable1=max_idtable1+1
m.fam=ALLTRIM(ThisForm.PageFrame1.Page1.Text1.Value)
m.naim=ALLTRIM(ThisForm.PageFrame1.Page1.Text2.Value)
m.otch=ALLTRIM(ThisForm.PageFrame1.Page1.Text3.Value)
APPEND BLANK
GATHER MEMVAR
ENDIF
UNLOCK RECORD 0


SELECT table2
IF LOCK("0","table2")
SCATTER MEMVAR BLANK
m.idtable2=max_idtable1+1
m.strana=ALLTRIM(ThisForm.PageFrame1.Page1.Text7.Value)
m.rayon=ALLTRIM(ThisForm.PageFrame1.Page1.Text8.Value)
m.oblast=ALLTRIM(ThisForm.PageFrame1.Page1.Text9.Value)
APPEND BLANK
GATHER MEMVAR
ENDIF
UNLOCK RECORD 0

SELECT cur_1
replace ALL cur_1.id WITH max_idtable1+1

SELECT table3
APPEND FROM cur_1.dbf for !DELETED()


и естественно таких таблиц куча , у меня их примерно 10

сама проблема состоит в скорости сохранения данных,
мож кто поделиться опытом по быстродействию ???
...
Рейтинг: 0 / 0
Кто как сохраняется ?
    #33391371
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда....

Позвольте полюбопытствовать, а откуда взялся такой код сохранения, уж очень он напоминает Fox 2.х

Если совсем короткко, то
1. Сделать буфферизацию таблиц
2. Привязать контролы на форме к источникам данных (таблицам)
3. Отказаться от LOCK() и иже с ними
4. Для сохранения данных использовать BEGIN/END/ROLLBACK TRANSACTION, TABLEUPDATE()
5. Для получения первичных ключей использовать идеологию NewID, а так же ограничения PRIMARY/CANDIDAT/FOREIGN KEY

поиск здесь и на foxclub.ru по ключевым словам
...
Рейтинг: 0 / 0
Кто как сохраняется ?
    #33391479
ВладикК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно примерчик или что-нибудь, ну более подробенее и разъяснительнее
...
Рейтинг: 0 / 0
Кто как сохраняется ?
    #33391616
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6. Для VFP8.0-9.0 можно еще использовать TRY..ENDTRY

простой пример

Good luck!
...
Рейтинг: 0 / 0
Кто как сохраняется ?
    #33393626
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладикК!

Схема LOCK("0") + CALCULATE MAX() (или чаще SELECT MAX(*)) вообще будет
работать только при том условии, что поле по которому идёт поиск максимума
НИКОГДА не будет изменяться. Если же такая вероятность существует, то
придётся ужесточать, и заменять LOCK("0") на FLOCK()
А вообще действительно это идеология позавчерашнего дня - слушай что говорит
PaulWist :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто как сохраняется ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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