Открытие и закрытие соединений с базой данных являются дорогостоящими операциями с точки зрения времени и ресурсов. В то же время, если соединение остается открытым в течение длительного времени, это может привести к утечке памяти или угрозе безопасности.
Таким образом, рекомендуемый подход состоит в том, чтобы открывать соединение с базой данных только при необходимости и закрывать, как только цель его открытия обслуживается.
В приведенном вами примере несколько операций с базами данных выполняются за один раз. Таким образом, вместо открытия соединения индивидуально для каждой операции, открывается только одно соединение, и оно закрывается после выполнения операции. Здесь соединение открывается и закрывается вручную.
Новые подходы DataAccess Layers, такие как EntityFramework и т. Д., Выполняют эту работу внутренне.
UsersPhonesDBContext.Database.SqlQuery<Phones>("dbo.InsertPhones @model", sqlParam);
В этой строке кода соединение с базой данных открывается и закрывается внутри, не беспокоясь об этом.
Таким образом, основной мотив состоит в том, чтобы свести к минимуму операции по открытию и закрытию соединения и закрыть соединение, как только цель его открытия закончится.
То, что Вы, вероятно, хотите, должно переопределить удар command-not-found
обработчик. Вот раздел в/etc/bash.bashrc в стандартной установке Ubuntu, которая устанавливает обработчик:
...
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- $1
return $?
else
return 127
fi
}
fi
...
В действительности, если команда не найдена, пользователь указал, что программа выполнена с той командой в качестве параметра. В случае Ubuntu это - программа Python, которая проверяет, чтобы видеть, сообщает ли команда, введенный пользователь является действительным приложением, которое может быть установлено, и если это, пользователю, что он может установить его.
То, что Вы, вероятно, хотите сделать, сравнивают его с Вами hashref команд и строк использования и отображают соответствующую, если существует соответствие.