On-line: alex_II, Andrey, Pasha, гостей 0. Всего: 3 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.09 10:23. Заголовок: из монопольного режима ---> в сетевой режим?


Подскажите, пожалуйста, как переделать программу редактирования базы данных в монопольном режиме
на редактирование в многопользовательском сетевом режиме?

Спасибо: 0 
Цитата Ответить
Ответов - 5 [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.09 10:27. Заголовок: к примеру, что мне изменить тут:


/*
Bd.dbf
Field1: Name=Kod, Type=Numeric, Width=3
Field2: Name=Fio, Type=Character, Width=16
*/
=================================================================
// Main.prg
set deleted on
set cursor off
set scoreboard off
cls
use Bd new
Edit_bd(2,14,20,65)
close Bd
====================================================================

// Compile: /n

static Met:={{5,{|Z|Z:up()}},{24,{|Z|Z:down()}},;
{19,{|Z|Z:left()}},{4,{|Z|Z:right()}},;
{18,{|Z|Z:pageup()}},{3,{|Z|Z:pagedown()}},;
{1,{|Z|Z:gotop()}}, {6,{|Z|Z:gobottom()}}}

proc Edit_bd(T,L,B,R)
local Color:=setcolor('bg+/b,b/bg'),oB,nKey,Jmet,Scr,A
Scr:=savescreen(T,L,B,R)
@ T,L,B,R box "|=|||=|| "
oB := TBrowseDB(T+1,L+1,B-1,R-1)
oB:headSep:=".="
oB:colsep:="|"
@ T,L+1 say 'ENTER=Edit, ESC=Exit, INS=Append Blank, DEL=Delete' color('r+/b')
oB:addColumn(TBColumnNew('Kod',FieldBlock('Kod')))
oB:addColumn(TBColumnNew('Name_',FieldBlock('Fio')))
do while .t.
do while nextkey()=0.and.!oB:stabilize()
enddo
nKey:=inkey(0)
Jmet:=ascan(Met,{|Z|nKey=Z[1]})
iif(Jmet!=0,eval(Met[Jmet,2],oB),)
do case
case nKey=27 //ESC
exit
case nKey=13 //ENTER=redaktirovanie stroki
A:=field(oB:colpos)
set cursor on
@ row(),col() get &A color('bg+/r')
read
set cursor off
oB:refreshcurrent()
case nKey=7 //DEL=udalenie stroki
if alert('Delete?',{'N','Y'})=2
delete
oB:refreshall()
endif
case nKey=22 //INS=dobavlenie stroki
A:=' '
set cursor on
@ B,L+1 say 'Name_:' get A color('bg+/r')
read
set cursor off
@ B,L+1 say '=========================='
if !empty(A)
append blank
fieldput(2,A)
A:=recno()
endif
oB:gotop()
go A
oB:refreshall()
endcase
enddo
setcolor(Color)
restscreen(T,L,B,R,Scr)
return


Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.09 10:29. Заголовок: хм, везде пропали пр..


хм, везде пропали пробелы.. (
Взяла простейшую базу с двумя полями без индексов


Спасибо: 0 
Цитата Ответить
постоянный участник


Пост N: 344
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.02.09 13:37. Заголовок: В вашем примере база..


В вашем примере база данных Bd.dbf открывается без указания режима обработки. Если мне память не изменяет, то по умолчанию используется монопольный режим работы.:)

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1076
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.02.09 13:59. Заголовок: открытие: use Bd new..


открытие:
use Bd new shared

редактирование/удаление:

if RecLock()
read
или
delete
dbCommit()
dbUnlock()
endif

добавление:

append blank
if ! neterr()
fieldput(2,A)
dbCommit()
dbUnlock()
endif

функция блокировки записи:

/***
* RecLock( <nWaitSeconds> ) --> lSuccess
* Попытка заблокировать запись базы данных для других пользователей
*/
FUNCTION RecLock( nSeconds )
LOCAL lForever
IF RLOCK()
RETURN (.T.) // Заблокирована
ENDIF
IF nSeconds == NIL
nSeconds := 2
ENDIF
lForever = (nSeconds = 0)
DO WHILE (lForever .OR. nSeconds > 0)
IF RLOCK()
RETURN (.T.) // Заблокирована
ENDIF
INKEY(.5) // Ожидание 1/2 секунды
nSeconds = nSeconds - .5
ENDDO
RETURN (.F.) // Не заблокирована


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.09 14:11. Заголовок: Большое спасибо за р..


Большое спасибо за разъяснения, попробую)).
Я про shared только и знала, но не указала, чтоб привести полностью несетевой вариант...

Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 544
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет