Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как открыть таблицу, чтобы не открывалась база? / 23 сообщений из 23, страница 1 из 1
10.01.2006, 13:42
    #33474112
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Хорошего дня всем!

Проблема тут появилась - нужно открыть пару таблиц только на чтение, принадлежащих к чужой базе. Можно как-то сделать в VFP 6.0, чтобы при открытии этих таблиц не открывалась в памяти база, к которой они принадлежат?

Заранее спасибо!
Юрий.

_______________________________________________________
Обходя разложенные грабли, ты теряешь драгоценный опыт!
...
Рейтинг: 0 / 0
10.01.2006, 13:55
    #33474158
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Никак. Для того их в базу и включали.
Например, если таблица имеет имена полей более 10 символов, то реально эти имена лежат в контейнере базы а не в dbf.
...
Рейтинг: 0 / 0
10.01.2006, 13:57
    #33474165
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
таблицы большие???
...
Рейтинг: 0 / 0
10.01.2006, 14:01
    #33474191
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
alex11100таблицы большие???

Да, в том то всё и дело... Иначе можно было бы скопировать и открывать как FREE. Думал, может чего-то не знаю...

А закрывать - иначе как Close Database All поднятая база не закрывается, что, в итоге, валит все мои таблицы. Хотелось избежать повторного открытия таблиц.
...
Рейтинг: 0 / 0
10.01.2006, 14:03
    #33474196
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Dima TНикак. Для того их в базу и включали.
Например, если таблица имеет имена полей более 10 символов, то реально эти имена лежат в контейнере базы а не в dbf.

Ясно. :( Спасибо.
...
Рейтинг: 0 / 0
10.01.2006, 14:05
    #33474207
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
close databases
без ALL
...
Рейтинг: 0 / 0
10.01.2006, 14:15
    #33474250
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
alex11100close databases
без ALL
Пробовал. :) Не прокатывает почему-то. Действия такие, буквально:

select ot (таблица, относящаяся к чужой базе)
close databases
? dbused('dmsdbc') (Проверка на открытие чужой базы, результат - .Т., в то время как все таблицы, и свои, и чужие закрыты)

Может я правда, чего-то не понимаю? В хелпе написано, что Close Databases закрывает текущую базу, не трогая остальные таблицы. Если текущая БД не определена, то сносится всё. Может быть поднятая автоматически ДБ не является текущей? А как её сделать таковой?
...
Рейтинг: 0 / 0
10.01.2006, 14:16
    #33474255
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
свои как обычно юзай
а чужую БД в другой датасессии юзай и там закрывай
...
Рейтинг: 0 / 0
10.01.2006, 14:39
    #33474329
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
alex11100свои как обычно юзай
а чужую БД в другой датасессии юзай и там закрывай

Спасибо. :) Вроде работает.
...
Рейтинг: 0 / 0
10.01.2006, 14:41
    #33474337
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
куды ж она ... с подводной лодки
...
Рейтинг: 0 / 0
10.01.2006, 14:48
    #33474368
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
а если так
Код: plaintext
1.
2.
3.
4.
5.
6.
sele чужая таблица1
use && закрыли таблицу чужая таблица1
sele чужая таблица2
use && закрыли таблицу чужая таблица2
.....

закрыли все ненужные таблицы.

а потом
Код: plaintext
close databases && закрыли текущую базу данных
...
Рейтинг: 0 / 0
10.01.2006, 16:05
    #33474650
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
есть такая настройка

SET DATABASE TO ...

которая выбирает в качестве текущей указанную базу данных. Дело в том, что команда

CLOSE DATABASE

относится именно к текущей базе данных. А при открытии базы данных связанной с таблицей далеко не факт, что она будет установлена как текущая. Т.е. нужна такая последовательность команд

Код: plaintext
1.
2.
3.
4.
IF dbused('dmsdbc') = .T.
	SET DATABASE TO dmsdbc
	CLOSE DATABASE
ENDIF
...
Рейтинг: 0 / 0
10.01.2006, 17:07
    #33474832
piki_piki
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
авторДа, в том то всё и дело... Иначе можно было бы скопировать и открывать как FREE. Думал, может чего-то не знаю...
Ви димо не знаешь:
Лови.
* Скопировать таблицу с отцеплением от БД.
* Обработку ошибок самостоятельно.

Код: 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.
? CopyAndDropDbf()

Procedure CopyAndDropDbf()
    Local lcPathReal_DBF,;
        lcPathNew_Dir,;
        lcNewPAth_DBF As String,;
        lcTmp As String,;
        lnByte_0x0D,lcHeader,lc_0x00,lcBodyFreeFile,lcFreeFile  As String

    lcPathReal_DBF = "Z:\DATAUSERS\table.dbf"
    lcPathNew_DBF  = "C:\MyNewPATH"
    If !Directory(lcPathNew_DBF)
        Mkdir (lcPathNew_DBF)
    Endif
    lcNewPAth_DBF =   Addbs(lcPathNew_DBF)+"table.dbf"
    lcTmp  =  Filetostr(lcPathReal_DBF)
    lnByte_0x0D  =  Atc(Chr(0x0D),lcTmp)
    If lnByte_0x0D= 0 
	    RETURN .F.
    ENDIF
        lcHeader =  Substr(lcTmp, 1 ,lnByte_0x0D- 1 )
        lc_0x00 =  Replicate(Chr(0x00), 263 )
        lcBodyFreeFile =    Substr(lcTmp,lnByte_0x0D+ 263 )
        lcFreeFile =  lcHeader+lc_0x00+lcBodyFreeFile
        Return (Strtofile(lcFreeFile,lcNewPAth_DBF)!= 0 )
Endproc

Удачи :)
...
Рейтинг: 0 / 0
10.01.2006, 17:46
    #33474909
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
piki_piki авторДа, в том то всё и дело... Иначе можно было бы скопировать и открывать как FREE. Думал, может чего-то не знаю...
Ви димо не знаешь:
Лови.

...

Удачи :)

Спасибо, конечно, но смысла большого в этом нет - когда таблицы чужой базы весят, в лучшем случае, мегов 300, то копировать ЭТО - обрекать юзверей на слишком долгое ожидание...
...
Рейтинг: 0 / 0
10.01.2006, 17:47
    #33474911
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
ВладимирМесть такая настройка

SET DATABASE TO ...

которая выбирает в качестве текущей указанную базу данных. Дело в том, что команда

CLOSE DATABASE

относится именно к текущей базе данных. А при открытии базы данных связанной с таблицей далеко не факт, что она будет установлена как текущая. Т.е. нужна такая последовательность команд

Код: plaintext
1.
2.
3.
4.
IF dbused('dmsdbc') = .T.
	SET DATABASE TO dmsdbc
	CLOSE DATABASE
ENDIF


Спасибо. :) Это вообще то, что нужно.
...
Рейтинг: 0 / 0
10.01.2006, 17:50
    #33474920
piki_piki
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
авторСпасибо, конечно, но смысла большого в этом нет - когда таблицы чужой базы весят, в лучшем случае, мегов 300, то копировать ЭТО - обрекать юзверей на слишком долгое ожидание...

Вам ответили на Ваш вопрос, конкректно по нотации.
...
Рейтинг: 0 / 0
11.01.2006, 13:25
    #33476374
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
piki_piki авторСпасибо, конечно, но смысла большого в этом нет - когда таблицы чужой базы весят, в лучшем случае, мегов 300, то копировать ЭТО - обрекать юзверей на слишком долгое ожидание...

Вам ответили на Ваш вопрос, конкректно по нотации.

Как я уже написал, в данном случае, решение не лучшее... Оптимально - то, что предложил Владимир.
...
Рейтинг: 0 / 0
11.01.2006, 14:29
    #33476591
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Select * from your_opened_table INTO CURSOR xxx
* woking with temporay cursor....

SELECT your_opened_table
USE
...
Рейтинг: 0 / 0
11.01.2006, 14:49
    #33476662
piki_piki
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Yuri Tyurin, нужно умекть задавать вопросы, а не быть "собакой на сене", которая сама не знает, что хочет. Тогда лучьшее решение будет своим.
...
Рейтинг: 0 / 0
11.01.2006, 15:16
    #33476765
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
piki_pikiYuri Tyurin, нужно умекть задавать вопросы, а не быть "собакой на сене", которая сама не знает, что хочет. Тогда лучьшее решение будет своим.

Кого-то мне эта распальцованная крутизна напоминает... ;)))
...
Рейтинг: 0 / 0
11.01.2006, 15:45
    #33476846
Пуки лол
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Пуки читай топик внимательнее, не тупи.
Ты ответил не в тему, и пальцовки гнешь.
А решение твое левое, коли хочешь таблицу
после копирования освободить не изобретай
велосипед а RTFM на FREE TABLE
...
Рейтинг: 0 / 0
11.01.2006, 16:52
    #33477093
piki_piki
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
Yuri Tyurin, Напоминает она тебе пояльник в твоей заднице включенный в электросеть.
Пуки лол : FREE TABLE - особенно когда таблица открыта в шаре, да ? :)
...
Рейтинг: 0 / 0
11.01.2006, 17:01
    #33477123
Yuri Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть таблицу, чтобы не открывалась база?
piki_pikiYuri Tyurin, Напоминает она тебе пояльник в твоей заднице включенный в электросеть.
Пуки лол : FREE TABLE - особенно когда таблица открыта в шаре, да ? :)

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


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