Exists(In-Memory Database Driver)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

Привет всем !

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

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

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

  If Exists(FileNameIMD) ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 425
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 87 раз
Поблагодарили: 5 раз

Exists(In-Memory Database Driver)

Сообщение ingasoftplus »

Нет.
в доке все написано (вернее нет)
IMDCapture.JPG
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Exists(In-Memory Database Driver)

Сообщение Губин Игорь »

Странный вопрос. Таблица в памяти есть всегда. Она может быть закрыта или пустой. :dizzy:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

Губин Игорь писал(а): 20 Январь 2023, 11:06 Таблица в памяти есть всегда.
Отлично ! Теперь появился смысл и в предыдущем ответе с картинками.
Там ведь есть зачем-то оператор CREATE ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Exists(In-Memory Database Driver)

Сообщение Губин Игорь »

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

FileExist показывает наличие физического файла на носителе. Для IMDD это лишено смысла. А вот остальные операторы вполне логично работают.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

Вот лучше бы для единообразия SV реализовала Exists() для всех драйверов БД.
В принципе - и сделать самому не сложно, но есть неприятные нюансы ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

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

Exists(In-Memory Database Driver)

Сообщение Губин Игорь »

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

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

Кстати, RamDisk и IMDD это РАЗНОЕ! :lol:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

Губин Игорь писал(а): 20 Январь 2023, 12:06 file - выражение содержащие имя файла DOS
Тут путаница в том, что в одной деревне всех звали одинаково ... ;)
И File{Prop:Name} - это и имя на диске, и имя в памяти и метка файла (при отсутствии имени "файла")
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Exists(In-Memory Database Driver)

Сообщение Губин Игорь »

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

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

Cкажем, проверить наличие файла физической БД можно через Exits, а можно, через Open - ErrorCode.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Exists(In-Memory Database Driver)

Сообщение Игорь Столяров »

Губин Игорь писал(а): 20 Январь 2023, 12:29 а можно, через Open - ErrorCode
Да, это понятно ... вопрос в том, что в отличии от традиционных файлов, для IMDD есть ещё аттрибут THREADEDCONTENT.
Т.е. файл на диске - он либо есть, либо его нет. А для таблицы IMDD есть зависмость от того, где выполняется проверка.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Exists(In-Memory Database Driver)

Сообщение Губин Игорь »

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