On-line: Andrey, tnsr2, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 7388
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.06.23 16:11. Заголовок: Надо ли базы открывать в цикле ?


Вопрос ко всем кто работает с DBF.
Как вы открываете свои базы в программе, одно открытие базы или несколько попыток открытия базы ?
Я сам всегда открываю файлы в одну попытку.
Какая у вас практика по работе с базами ?

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


moderator




Пост N: 2136
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 01.06.23 16:58. Заголовок: Andrey пишет: сам в..


Andrey пишет:

 цитата:
сам всегда открываю файлы в одну попытку.


Аналогично.

Andrey пишет:

 цитата:
Как вы открываете свои базы в программе


Например, так
FUNCTION OpenTable( cDBF ) 

LOCAL bOldHandler
LOCAL lOpen := .T.
LOCAL cAlias

bOldHandler := ErrorBlock( {|o| Break(o)} )

cAlias := Upper( Left( cFileNoExt( cDBF ), 4 ) )

BEGIN SEQUENCE

USE ( cDBF ) ALIAS ( GetNewAlias( cAlias ) ) NEW

RECOVER

lOpen := .F.

MsgStop( "Unable to open file:" + CRLF + cDBF )

END

ErrorBlock( bOldHandler )

RETURN lOpen


STATIC FUNCTION GetNewAlias( cAlias )

LOCAL nArea := 1
LOCAL cNewAlias

IF Select( cAlias ) != 0
REPEAT
UNTIL Select( cNewAlias := ( cAlias + StrZero( nArea++, 3 ) ) ) != 0
ELSE
cNewAlias := cAlias
ENDIF

RETURN cNewAlias


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




Пост N: 4281
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.06.23 17:38. Заголовок: Всегда открываю толь..


Всегда открываю только в цикле (до 2-х секунд попытки).
Это относится как к локальным так и сетевым dbf. Такие ожидания оправданы т.к. базу можно открывать Shared, Exclusive режимах кратковременно и (запись, чтение) и сразу закрываю, к базе может обращаться несколько приложений и сразу отвергать открытие и вступать в диалог, как то не камильфо + если открывать списком и открыв почти все, споткнутся на одном ... то же так себе.
Еще исп. цикл при dbAppend(), тут в одном месте поленился и поставил стандартный вариант и попал, что периодически стало валится добавление (редко, но метко). Пришлось править и версию менять, то же так себе ощущения.
Вариант dbAppend() Скрытый текст

Вариант DbUseArea() Скрытый текст


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

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