Что такое код dbase_close

Linux.yaroslavl.ru

Учебник РНР
Назад Вперёд

dbase_close — закрывает БД dBase.

Описание

bool dbase_close (int dbase_identifier)

Закрывает БД, ассоциированную с dbase_identifier .

Что такое код dbase_close

Всем добрый день! Мне тут не повезло — подкинули базу dbase 3+. Для нее необходимо создать индекс. Пыталась как для dbase 4(код приведу ниже), но ничего не вышло.Может для создания индекса в такой базе нужна какая-то специфическая команда?

Часть кода для dbase 4
В данной процедуре исправляется заголовок
procedure TFrmDbf.RemoveMDXByte(dbFile: string);
const
Value: Byte = 0;
var
F: file of byte;
begin
//Исправление заголовка, чтобы не требовать файл .mdx
AssignFile(F, dbFile);
Reset(F);
Seek(F, 28);
Write(F, Value);
CloseFile(F);
end;

//В этом кусочке процедуру создается индекс
Tkredit.Exclusive :=true;
Tkredit.addIndex(«ID_NLS»,»NLS»,[]);
Tkredit.Open;
dbiPackTable (Tkredit.Database.Handle, Tkredit.Handle,PChar (Tkredit.TableName), szDBASE, True);
Tkredit.close;
Tkredit.Exclusive :=false;

в третьем не может быть .mdx, а только файловые *.ntx, и имя файла индексного должно с именем поля совпадать (не всегда, но в некоторых случаях требуется). в обшем попробуй
Tkredit.addIndex(«NLS»,»NLS»,[]);

все остальное тоже самое.

Sniknik — попробовала. Выдает ошибку — Table level changed. Хотя я в BDE администраторе в сонфигурации-драйвера для Dbase специально поставила level 3.

> Table level changed
похоже на то что в индексе чтото, что несовместимо в 3, пытается/конвертит в 4.
кстати откуда увереность что сама табличка в 3м формате? может например клипер или фокс.

запросом не пробовал/а ?
CREATE INDEX NLS ON Table (NLS)

не получится переходи на Halcyon (или ананалог) я с ним работаю, с клиперными правда, а в последнее время и с фохрошными таблицами/индексами, но тоже старыми (индексы ntx, idx), нормально получается.

Что такое код dbase_close

Объектно-ориентированный и процедурный язык программирования систем управления реляционными базами данных, разработанный корпорацией Microsoft.

Новости

Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных. Двадцатиление FoxPro! Microsoft принимает поздравления. Visual FoxPro Toolkit for .NET — более 225 функций VFP 7.0, для языков .NET (подробнее)

Команды CLOSE

Закрывают файлы различных типов.

CLOSE
[ALL | ALTERNATE | DATABASES [ALL] | FORMAT | INDEXES
| PROCEDURE | TABLES [ALL]]

Закрывает все открытые базы данных, таблицы и индексы во всех рабочих областях и выбирает рабочую область 1. Команда CLOSE ALL также закрывает все файлы, отк ытые с помощью функций файлов низкого уровня FCREATE( ) и FOPEN( ).

По команде CLOSE ALL также закрываются:

CLOSE ALL не закрывает:

Закрывает альтернативный файл, открытый с помощью команды SET ALTERNATE.

CLOSE DATABASES [ALL]

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

Задает закрытие следующих элементов:

Всех открытых баз данных и их таблиц.

Всех открытых свободных таблиц.

Всех индексов и файлов формата во всех рабочих областях.

Выбирается рабочая область 1.

Закрывает файл формата в текущей рабочей области, открытый с помощью команды SET FORMAT.

Закрывает все открытые файлы индексов (как просые индексы .IDX, так и езависимые составные индексы .CDX) в текущей рабочей области. Структурный составной ин екс (файл .CDX, автоматически открываемый вместе с таблицей) не закрывается.

Закрывает файл процедуры, открытый по команде SET PROCEDURE.

CLOSE TABLES [ALL]

Закрывает все таблицы во всех открытых базах данных, оставляя сами базы данных открытыми. Если открытых баз данных нет, команда CLOSE TABLES закрывает все свободные таблицы во всех рабочих областях.

CLOSE TABLES нельзя выдавать во время выполнения транзакции; Visual FoxPro сге ерирует сообщение об ошибке.

Закрывает все таблицы (включая свободные) во всех рабочих областях. Все базы анных остаются открытыми.

Задание значения OFF для параметра базы данных AUTO_CLOSE Set the AUTO_CLOSE Database Option to OFF

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Это правило проверяет, имеет ли параметр AUTO_ CLOSE значение OFF. This rule checks whether the AUTO_ CLOSE option is set OFF. Если параметр AUTO_CLOSE имеет значение ON, это может привести к снижению производительности баз данных, к которым часто выполняются обращения, из-за увеличения издержек на открытие и закрытие базы данных после каждого соединения. When AUTO_CLOSE is set ON, this option can cause performance degradation on frequently accessed databases because of the increased overhead of opening and closing the database after each connection. Параметр AUTO_CLOSE также очищает кэш процедур после каждого соединения. AUTO_CLOSE also flushes the procedure cache after each connection.

Рекомендации Best Practices Recommendations

При частом обращении к базе данных присвойте параметру AUTO_CLOSE базы данных значение OFF. If a database is accessed frequently, set the AUTO_CLOSE option to OFF for the database.

Что такое код dbase_close

Сегодня всплыла проблема. В приложении есть две строчки:
ПРи отладке (не Run-time приложение) всё работает нормально. Как только строю экзешник, то при попытке выполнить команду PACK DATABASE появляется сообщение, что БД должна быть открыта в монопольном доступе.
Видать первая приведённая строчка не работает. Но почему не выдаётся сообщение, что не удалось открыть БД эксклюзивно?
И кк заставить её всё-таки открыться эксклюзивно?

Кстати, перед этим проверяем БД с помощью функции:
Результат проверки — ноль, то есть как я понимаю база данных эксклюзивно открывается.

Re: Открыть БД эксклюзивно
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону

Дата: 14.06.07 15:39:13

никогда не понимал вот этого:
lcEXEC=’OPEN DATABASE ‘+name_dbc+’ ‘+tip_open
&lcEXEC
К чему такая «экономия»? Чтобы враги не разобрались?

Re: Открыть БД эксклюзивно
MichaelD

Сообщений: 7578

Дата: 14.06.07 16:42:52

— обычно VFP-среда для программиста настроена на открытие файлов в EXCLUSIVE (?SET(«EXCLUSIVE»)). это сделано потому, что разработчик больше работает со структурой чем с данными.
— в пользовательском приложении всё с точностью до наоборот, поэтому в каждой вновь созданной PDS (и в DDS конечно), следует явно устанавливать SET EXCLUSIVE OFF
— последнее особо необходимо, если вы перед открытием буквально любых таблиц из dbc (по USE) предварительно явно не открываете в коде dbc явно сами (OPEN DATABASE . SHARED), ибо при USE . будет неявно произведено открытие dbc в режиме ?SET(«EXCLUSIVE») (проанализировать «среду» в рамках одного процесса можно исползуя функции: ADATABASES(), AUSED())
— наконец, если dbc где-то/кем-то уже открыта (речь не только о вашем конретном процессе), то вам ес-но не удасться открыть OPEN DATABASE . EXCLUSIVE по той причине, что она уже используется и не может быть открыта монопольнно. Для этого нужно завершить буквально все процессы, использующие вашу dbc

Исправлено: MichaelD, 14.06.07 17:07

Re: Открыть БД эксклюзивно
PrSymbol

Сообщений: 682
Откуда: Москва

Дата: 14.06.07 18:27:05

Может так пройдет:

потому как (если верить хелпу):
If you open a database twice in succession without closing the database, the database retains the same settings specified with the first DATABASE OPEN command. To change the settings, you need to close the database and then issue the DATABASE OPEN command with new settings. For example, if you open a database and specify EXCLUSIVE, the ISEXCLUSIVE function returns True (.T). If you run the DATABASE OPEN command using the same database and specify SHARED the ISEXCLUSIVE function still returns True (.T.). To open the database as shared, you need to close the database and then issue the DATABASE OPEN command using the SHARED keyword.

Исправлено: PrSymbol, 14.06.07 18:44

Re: Открыть БД эксклюзивно
slavabur

Сообщений: 18
Откуда: Екатеринбург

Дата: 15.06.07 08:57:21

А может быть дело не в том, что база не открывается эксклюзивно?
Похоже база открывается только на чтение.

Я не нашёл как явно прописать, что база доступна на чтение-запись. Только на read_only (установить при открытии NOUPDATE). Может кто подскажет?

P.S. Или у меня где-то в установках стоит, чтро базы открывать только readonly?

Исправлено: slavabur, 15.06.07 09:00

Re: Открыть БД эксклюзивно
PrSymbol

Сообщений: 682
Откуда: Москва

Дата: 15.06.07 09:33:16

Если сами файлы БД «read_only»
OPEN DATABASE . EXCLUSIVE -> выполняется без ошибок, потому как ISEXCLUSIVE(. ) выдает .T.,
но при PACK DATABASE у меня выдается сообщение «Cannot update the cursor . since it is read-only», что есть совсем другая ошибка, отличная от «база должна быть открыта в монопольном доспупе»
значит сами файлы БД не «read_only» — уже хорошо

Если БД уже открыта где-то\кем-то, то при попытке OPEN DATABASE . EXCLUSIVE -> выдается сообщение «File access is denied», что тоже отлично от «база должна быть открыта в монопольном доспупе»

так что кусочек:
должен работать стопудово,
а не работает -> чудеса
Могет шаманский бубен нужен или
. посмотреть что возвращает ISEXCLUSIVE(. ), если .F. то You will not be able to open password-protected files, even if you know the password. (c) MS 2007

Исправлено: PrSymbol, 15.06.07 09:42

Re: Открыть БД эксклюзивно
slavabur

Сообщений: 18
Откуда: Екатеринбург

Дата: 15.06.07 09:42:43

И кстати, работало раньше. После того, как я перекомпилировал все файлы при построении экзешника пошла такая ерунда.

Исправлено: slavabur, 15.06.07 09:51

Re: Открыть БД эксклюзивно
aga
Автор

Сообщений: 290
Откуда: Могилев

Дата: 15.06.07 09:50:55

Не включена ли БД в проект случайно?
что показывает ISREADONLY() при открытии?

Установленное значение Auto_Close базы данных быть отключено по умолчанию через рамку объекта

Я использую EF код первый и сервер SQL, чтобы создать базу данных с помощью

По умолчанию, это, кажется, создать базу данных с опцией Auto_Close установлен в TRUE. Обратите внимание, что модель БД имеет Auto_Close установлено в FALSE по умолчанию.

Таким образом, представляется, что EF устанавливает значение этого параметра в TRUE.

Есть ли кто-нибудь знает, как изменить это поведение при создании БД?

Я должен был бы сделать это как БД создается , а не изменять параметры БД после создания.

Ну, кажется, что AUTO_CLOSE установлен в значение TRUE по умолчанию в SQL Express и LocalDB. Это запеченная в СОЗДАТЬ дб функцию SQL, и, следовательно, не может быть изменен до тех пор, после того, как БД создана.

Таким образом, единственный способ установить AUTO_CLOSE ложь либо запустить команду ALTER DATABASE или создать БД непосредственно в SQL Server, в этом случае функция AUTO_CLOSE будет отражать ценность модели DB (который является FALSE по умолчанию).

AUTO_CLOSE

Если бы SQL Server существовал во времена Инквизиции, то за включение некоторых опций на продакшен серверах нужно было бы наказывать калёным железом. Но если отбросить лирику, то далее на рассмотрим почему не нужно включать AUTO_CLOSE и к чему может привести использование этой опции.

Собственно, как и любая интересная истории из жизни, все начиналось с рутиной задачи.

На днях пришлось заглянуть в Error Log на тестовом сервере. На второй минуте ожидания, SSMS изрядно поплохело от обилия сообщений, которые хранил журнал, и я решил посмотреть сколько же весят логи с помощью xp_enumerrorlogs:

Как правило, на тестовых серверах я стараюсь не бороться с размером журнала, поскольку при каждом старте SQL Server-а происходит циклическая смена файлов журнала: текущий журнал errorlog переименовывается в errorlog.1, создается пустой файл errorlog и удаляется самый старый журнал errorlog.6.

В случае, когда возникает необходимо очистить журналы, то на помощь может прийти sp_cycle_errorlog. Но перед тем как очистить журналы, все же захотелось понять, что в них такого интересного записано.

Выполнил чтение из текущего журнала с помощью хранимой процедуры xp_readerrorlog:

И тут моему периферийному зрению попались на глаза многочисленные сообщения:

С одной стороны, в этом нет ничего плохого. При каждом старте SQL Server открывает файлы данных и проверяет загрузочную страницу:

Но после того как я отфильтровал по искомому сообщению, результаты выборки заставили задуматься:

Большое количество такого рода сообщений может возникать из-за включения опции AUTO_CLOSE.

Согласно документации, при включении опции AUTO_CLOSE база данных будет автоматически закрываться и высвобождать все занимаемые ею ресурсы, когда перестает существовать последнее пользовательское соединение использующее эту БД. При повторном обращении база будет автоматически переоткрываться… и так до бесконечности.

Когда-то давно читал, что на физическом уровне операция AUTO_CLOSE для старых версий SQL Server являлась полностью синхронным процессом, который мог вызывать большие задержки при постоянных переоткрытиях файлов БД. Начиная с SQL Server 2005, AUTO_CLOSE стал асинхронным и часть проблем ушла. А что осталось? Достаточно всего, чтобы не пользоваться этой опцией…

Для оптимизации производительности SQL Server выполняет изменения страниц в буферном кеше и не записывает эти страницы на диск после каждой модификации. Вместо этого SQL Server периодически создает контрольную точку, по которой записывает текущие страницы, измененные в памяти, вместе со сведениями журнала транзакций из памяти на диск. При закрытии базы данных автоматически выполняется CHECKPOINT. Соответственно при постоянных закрытиях БД может сильно возрастать дисковая нагрузка.

Также при каждом закрытии базы данных очищается её процедурный кеш. Соответственно, когда база повторно откроется придётся генерировать планы выполнения по новой. Но что еще печальнее… при закрытии очищается также и буферный кеш, что увеличивает дисковую нагрузку при выполнении запросов.

Microsoft со мной солидарна и также не рекомендует включать AUTO_CLOSE:

When AUTO_CLOSE is set ON, this option can cause performance degradation on frequently accessed databases because of the increased overhead of opening and closing the database after each connection. AUTO_CLOSE also flushes the procedure cache after each connection.

Однако есть пара нюансов. Если Вы используете SQL Server 2000 или любую Express редакцию, то при создании новой базы данных, опция AUTO_CLOSE будет неявно включаться:

Браво Microsoft! Стоячие овации…

Хотя если посмотреть с другой стороны, для SQL Server Express такое поведение вполне объяснимо, поскольку в рамках этой редакции существует ограничение на размер используемой ОЗУ – не более 1 Гб.

Но на будущее, если вдруг потребуется разворачивать базу данных с помощью скрипта, лучше перестраховаться и явно отключать AUTO_CLOSE:

В процессе работы я заметил еще один интересный момент – при обращении к некоторым функциям или системным представлениям, все базы данных с включенной опцией AUTO_CLOSE будут открываться:

Мы обращаемся к p1:

Но p2 тоже просыпается «за компанию»:

И вот наконец мы докопались до истины. На сервере различные пользователи активно обращались к метаданным… это заставляло просыпаться базы данных с включенным AUTO_CLOSE, что в свою очередь неявно вызывало рост журнала.

Превентивные меры, кстати, вышли очень простыми:

Все тестировалось на Microsoft SQL Server 2012 (SP3) (KB3072779) — 11.0.6020.0 (X64).

Если хотите поделиться этой статьей с англоязычной аудиторией:
Enabling AUTO_CLOSE is a bad idea?

Задание значения OFF для параметра базы данных AUTO_CLOSE Set the AUTO_CLOSE Database Option to OFF

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Это правило проверяет, имеет ли параметр AUTO_ CLOSE значение OFF. This rule checks whether the AUTO_ CLOSE option is set OFF. Если параметр AUTO_CLOSE имеет значение ON, это может привести к снижению производительности баз данных, к которым часто выполняются обращения, из-за увеличения издержек на открытие и закрытие базы данных после каждого соединения. When AUTO_CLOSE is set ON, this option can cause performance degradation on frequently accessed databases because of the increased overhead of opening and closing the database after each connection. Параметр AUTO_CLOSE также очищает кэш процедур после каждого соединения. AUTO_CLOSE also flushes the procedure cache after each connection.

Рекомендации Best Practices Recommendations

При частом обращении к базе данных присвойте параметру AUTO_CLOSE базы данных значение OFF. If a database is accessed frequently, set the AUTO_CLOSE option to OFF for the database.

Что такое код dbase_close

Закрывают файлы различных типов.

Параметры:
ALL
Закрывает все открытые базы данных, таблицы и индексы во всех рабочих областях и выбирает рабочую область 1. Команда CLOSE ALL также закрывает все файлы, открытые с помощью функций файлов низкого уровня FCREATE( ) и FOPEN( ).
По команде CLOSE ALL также закрываются:

  • Конструктор форм
  • Диспетчер проектов
  • Конструктор этикеток
  • Конструктор отчетов
  • Конструктор запросов

CLOSE ALL не закрывает:

  • Окно команд
  • Окно отладки
  • Справку
  • Окно трассировки

CLOSE ALTERNATE
Закрывает альтернативный файл, открытый с помощью команды SET ALTERNATE.
CLOSE DATABASES [ALL]
Закрывает текущую базу данных и ее таблицы. Если текущая база данных не определена, закрываются все открытые свободные таблицы, индексы и файлы формата во всех рабочих областях и выбирается рабочая область 1.
ALL
Задает закрытие следующих элементов:
Всех открытых баз данных и их таблиц.
Всех открытых свободных таблиц.
Всех индексов и файлов формата во всех рабочих областях.
Выбирается рабочая область 1.
CLOSE FORMAT
Закрывает файл формата в текущей рабочей области, открытый с помощью команды SET FORMAT.
CLOSE INDEXES
Закрывает все открытые файлы индексов (как просые индексы .IDX, так и независимые составные индексы .CDX) в текущей рабочей области. Структурный составной индекс (файл .CDX, автоматически открываемый вместе с таблицей) не закрывается. CLOSE PROCEDURE
Закрывает файл процедуры, открытый по команде SET PROCEDURE.
CLOSE TABLES [ALL]
Закрывает все таблицы во всех открытых базах данных, оставляя сами базы данных открытыми. Если открытых баз данных нет, команда CLOSE TABLES закрывает все свободные таблицы во всех рабочих областях.
CLOSE TABLES нельзя выдавать во время выполнения транзакции; Visual FoxPro сгенерирует сообщение об ошибке.
ALL
Закрывает все таблицы (включая свободные) во всех рабочих областях. Все базы данных остаются открытыми.

Ошибка Bizzare Database.Close(DAO) в Excel Userform

У меня есть надстройка Excel (с Userform), которая подключается к базе данных Access (используя DAO) для выполнения различных функций. Я использую эту комбо больше десятилетия. Недавно ни код в Excel, ни база данных не были изменены. Только на прошлой неделе пользователь сообщил, что одна из их функций занимает гораздо больше времени, чем обычно, поэтому я просмотрел ее. Это закончилось тем, что сама функция работала нормально, но когда код очищался и запускался db.Close это зависало. Это не приводит к ошибке, но в конечном итоге это удается, но требуется около минуты, чтобы закрыть db и двигаться дальше.

Я рассмотрю все симптомы и попытаюсь решить, есть ли у кого-нибудь идеи, потому что я в недоумении.

Это происходит только при запуске db.Execute. Я могу открыть базу данных и сразу закрыть ее, и она отлично закрывается. Если я открою его, запустите запрос SELECT, чтобы заполнить набор записей, а затем закройте его, он также закрывается просто отлично. Но если я его открываю и запускаю один оператор UPDATE/SELECT INTO/INSERT/ALTER/DROP, метод Close займет минуту.

Моя первая мысль заключалась в том, чтобы скомбинировать db. Я очистил несколько неиспользуемых, старых столов и компактных/отремонтированных, но ничего не сделал. Та же проблема.

Моя следующая попытка состояла в том, чтобы воссоздать db. Я сделал новый TEST db, импортировал все таблицы из старого, указал надстройку над новым db и сделал те же тесты. Те же результаты.

Моя следующая попытка состояла в том, чтобы попытаться переместить его на локальный диск (это на сетевой ресурс). Это немного уменьшило зависание при закрытии, но оно все еще там. Не то, чтобы это важно, потому что этот db должен быть размещен на сетевом ресурсе.

Моя следующая попытка состояла в том, чтобы удалить кучу таблиц из моей базы данных TEST. Я расчистил около половины из них, и повесить на «Стейт» было очень мало. Очистка еще более уменьшила его еще больше. Удаление всех, кроме одной таблицы, устранило это. Итак, теперь я знаю, что моя проблема связана с размером db, но почему? Он был максимальным после 500 МБ после компактного, что не так уж и велико. Все прошло отлично. Почему внезапно размер или количество таблиц были бы такой огромной проблемой? Я, очевидно, не могу удалить все таблицы в производственной базе данных, чтобы решить проблему с закрытием соединения.

Как я уже упоминал, этот код длится довольно долго, а prod db — в формате Access 2000 (mdb), поэтому моя следующая попытка состояла в изменении формата. Я попытался импортировать все это как в формат Access 2003 (mdb), так и в самый последний формат Access 2020 (accdb). Результаты были одинаковыми.

На жаворонке я подумал, что я пытаюсь ударить db откуда-то, кроме надстройки (случайно, что проблема была в моем файле Excel). Я скопировал и вставил свой тестовый код в модуль Word 2020. и все прошло отлично.

Итак, я попробовал новый файл Excel. И побежал просто отлично.

Поэтому я возвращаюсь к своей надстройке и пробую код, вставленный в модуль.

Опять же, отлично работает.

Поэтому я открываю Userform и снова запускаю свой тестовый код. Зависает.

Я создаю совершенно новый файл Excel, создаю пустой Userform, вставляю свой тестовый код в форму «Инициализировать событие». вешает трубку.

Я сразу же запускаю тот же самый код в модуле. все еще зависает. Несмотря на то, что минута назад в модуле в другом файле все отлично работало.

Но если я закрою файл, откройте новый, вставьте код БЕЗ открытия Userform и запустите его, он отлично работает. Создание/открытие пользовательской формы вызовет все последующие попытки запустить код для зависания.

Итак, версия Cliff Notes:

Приложение Excel 2020 DAO для крупноянной базы данных Access зависает на db.Close при следующих обстоятельствах:

1) ДБ большой (удаление большинства таблиц помогает, но, очевидно, не является решением).

2) Вы открыли любую пользовательскую форму в любое время во время сеанса Excel. Все попытки во время ИЛИ после открытия формы, независимо от того, где выполняется код, будут висеть. Запуск кода перед открытием Userform не зависает.

Эти результаты дублируются на нескольких машинах Windows 7, и все они выглядят как последние обновления Office.

EDIT: я смог попробовать это на удаленной машине, работающей в Excel 2013, и нет зависания (с использованием оригинальной надстройки /db, которая впервые показала проблему). Тем не менее, эта машина находится в нашем центре обработки данных, которая является тем же самым местом, где расположены общие сетевые ресурсы, поэтому существует по крайней мере две возможные причины, по которым она не зависает: 1) различная версия Excel и 2) разное/более быстрое сетевое подключение,

Если вам интересно, почему я использую DAO вместо ADO, это из-за того, что делают эти функции (много вещей с циклом через Tabledefs для изменения индексов и даже создания/изменения таблицы Описание, к которой невозможно получить доступ через ADO Если бы это было не так, я бы просто переключился на ADO и покончил с этим. Возможно, я смогу придумать альтернативы /work-around ADO для всего, что он сейчас делает, d скорее не переписывайте всю эту надстройку, если я могу ей помочь.

Я нахожусь в полной утрате этого, поэтому, если у кого-нибудь есть идеи, я все уши.

Илон Маск рекомендует:  Что такое код movmem
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL