Страница 1 из 1

Exists(In-Memory Database Driver)

Добавлено: 19 Январь 2023, 23:46
Игорь Столяров
Привет всем !

Детский вопрос. ;)
Можно ли по имени "файла" узнать о осуществовании таблицы In-Memory Database Driver без открытия ?

Т.е. что-то вроде:

Код: Выделить всё

  If Exists(FileNameIMD) ...

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 10:36
ingasoftplus
Нет.
в доке все написано (вернее нет)
IMDCapture.JPG

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 11:06
Губин Игорь
Странный вопрос. Таблица в памяти есть всегда. Она может быть закрыта или пустой. :dizzy:

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 11:12
Игорь Столяров
Губин Игорь писал(а): 20 Январь 2023, 11:06 Таблица в памяти есть всегда.
Отлично ! Теперь появился смысл и в предыдущем ответе с картинками.
Там ведь есть зачем-то оператор CREATE ... ;)

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 11:46
Губин Игорь
Игорь Столяров писал(а): 20 Январь 2023, 11:12 Там ведь есть зачем-то оператор CREATE ...
Для единообразия и создания :lol:

FileExist показывает наличие физического файла на носителе. Для IMDD это лишено смысла. А вот остальные операторы вполне логично работают.

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 11:49
Игорь Столяров
Вот лучше бы для единообразия SV реализовала Exists() для всех драйверов БД.
В принципе - и сделать самому не сложно, но есть неприятные нюансы ...

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 11:53
Игорь Столяров
Губин Игорь писал(а): 20 Январь 2023, 11:46 FileExist показывает наличие физического файла на носителе
FileExist() - это язык шаблонов ... ;)
А для Exist() описание такое: Returns TRUE if the embedded source code point is available for use
Унижать переводом - категорически отказываюсь ! :)

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 12:06
Губин Игорь
Игорь Столяров писал(а): 20 Январь 2023, 11:53 FileExist() - это язык шаблонов ...
Умный, да?! :twisted:

Получи (с переводом :P ):
EXISTS - возвращает TRUE если файл доступен на диске.
file - выражение содержащие имя файла DOS.

Кстати, RamDisk и IMDD это РАЗНОЕ! :lol:

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 12:14
Игорь Столяров
Губин Игорь писал(а): 20 Январь 2023, 12:06 file - выражение содержащие имя файла DOS
Тут путаница в том, что в одной деревне всех звали одинаково ... ;)
И File{Prop:Name} - это и имя на диске, и имя в памяти и метка файла (при отсутствии имени "файла")

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 12:29
Губин Игорь
Игорь Столяров писал(а): 20 Январь 2023, 12:14 путаница в том
Надо отличать то, что относится к физическим файлам, а что к БД. То, что относится к БД оставлено для IMDD для совместимости.

Мы же, по привычке и из поиска лёгких путей, мешаем всё в одной куче.

Cкажем, проверить наличие файла физической БД можно через Exits, а можно, через Open - ErrorCode.

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 12:36
Игорь Столяров
Губин Игорь писал(а): 20 Январь 2023, 12:29 а можно, через Open - ErrorCode
Да, это понятно ... вопрос в том, что в отличии от традиционных файлов, для IMDD есть ещё аттрибут THREADEDCONTENT.
Т.е. файл на диске - он либо есть, либо его нет. А для таблицы IMDD есть зависмость от того, где выполняется проверка.

Exists(In-Memory Database Driver)

Добавлено: 20 Январь 2023, 12:56
Губин Игорь
Игорь Столяров писал(а): 20 Январь 2023, 12:36 А для таблицы IMDD есть зависмость от того, где выполняется проверка.
Вот потому и надо пользоваться только правильными средствами.
А с THREADEDCONTENT есть интересный ньюанс: у меня ощущение, что создание копии IMDD происходит в момент создания THREAD, а не при первом обращении. Т.е. опять, таки, "файл" IMDD есть всегда.