Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
1

После закрытия приложения весит процесс "sqlservr.exe"

21.01.2014, 16:37. Показов 1910. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мое приложение работает с файлом базы данных *.mdf , после закрытия приложения остается висеть процесс "sqlservr.exe" (sql local db)

Естественно соединение закрываю - Conn.Close()
Пробовал убивать процесс во время события закрытия приложения -

VB.NET
1
Process.GetProcessesByName("sqlservr")(0).Kill()
но в таком случае сильно увеличивается автоматически генерируемый номер строк для таблиц.

Например, была добавлено запись с автоматически присвоенным ей номером 10, закрываю приложение(убиваю процесс), захожу снова - следующая запись получает номер 1000.

Вроде этот процесс сам завершается через некоторое время, но есть следующая проблема - допустим я скопировал файл базы данных, поработал с ним, он мне не понравился и я его удаляю, программа ругается что файл используется в другом процессе, и удаляет его только после убийства процесса sqlserver.exe, либо перезапуска программы.
Удаляю следующем способом:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                    Try
                        Dim strPath As String
                        strPath = Massiv(i)
                        strPath = Application.StartupPath & "\" & strPath.Remove(strPath.Length - 4) & "_log.ldf"
                        If IO.File.Exists(strPath) = True Then
                            IO.File.Delete(strPath)
                        Else
                        End If
                        strPath = Massiv(i)
                        strPath = Application.StartupPath & "\" & strPath
                        IO.File.Delete(strPath)
                    Catch ex As Exception
                        MessageBox.Show("Файл базы данных используется СУБД. Для удаления файла базы данных перезупустите программу.")
                        Exit Sub
                    End Try
Как правильно завершать работу с программой и одновременно завершить процесс "sqlservr.exe"?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2014, 16:37
Ответы с готовыми решениями:

После закрытия программы ее процесс продолжает работать
visual basic 2010 при закрытии программа остается в процессах что делать

После закрытия приложения процесс не завершается
Сделал приложение для работы с HID устройствами. Всё что мне необходимо она выполняет, НО когда...

Не завершается процесс Excel после закрытия приложения
Часто встречался с подобным вопросом, и сам попадал на эти грабли. После завершения приложения...

Процесс висит после закрытия
Есть небольшой проект, который почему-то не выгружается из процессов после закрытия. Из потоков там...

Не завершаться процесс после закрытия программы
Добрый день. Возникла проблема, после закрытия программы один из процессов...

3
2756 / 2059 / 384
Регистрация: 22.07.2011
Сообщений: 7,781
21.01.2014, 16:40 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

sqlservr - служба SQL сервера . ее ненужно закрывать . она вообще автоматом запускается при каждой загрузке OS. Что касается удаления БД , то ее прежде нужно отключить от сервера. -
http://msdn.microsoft.com/ru-r... 88031.aspx
Обнулить счетчик записей можно так:
http://msdn.microsoft.com/en-u... 76057.aspx
1
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
21.01.2014, 17:08  [ТС] 3
Хз, у меня нет этого процесса после загрузки винды и он рождается только после запуска моей программы, потом после закрытия программы, через некоторое время процесс сам завершается, но далеко не сразу.
У меня вообще не установлено самого SQLServer, установлено VS 2012 Express, вместе с которой SQL Server LocalDB express.

Но за инфу спасибо, почитаю...
0
1713 / 1201 / 227
Регистрация: 23.12.2010
Сообщений: 1,530
22.01.2014, 17:51 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Отсюда:
Microsoft SQL Server 2012 Express LocalDB — это режим выполнения SQL Server Express, предназначенный для разработчиков программ. При установке LocalDB выполняется копирование минимального набора файлов, необходимых для запуска компонента Компонент SQL Server Database Engine.
И оттуда же:
При соединении необходимая инфраструктура SQL Server создается и запускается автоматически, что позволяет приложению использовать базу данных без выполнения сложной настройки, занимающей много времени.
Так что может это такая фича, чтобы меньше грузить комп. А что выключается не сразу - так это чтобы при небольших промежутках времени между соединениями/рассоединениями не производить кучи перезапусков. Т.е. если за энное время соединений не было, служба останавливается, считая, что она не нужна в ближайшее время...
1
22.01.2014, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2014, 17:51
Помогаю со студенческими работами здесь

Программа не завершает свой процесс после закрытия
У меня имеется программа типо "Голосовой чат". Она работает так: в textBox1 вводишь ip компьютера...

Периодический запуск sqlservr.exe
Установлен ms sql 2008 R2 на windows 7 x64, работает один пользователь разработчик. В разделе...

Не убивается процесс после закрытия
Если закрыывать с первой формы то все нормально,а если со второй - процесс project.exe остается не...

После закрытия процесс программы остаётся
Ребята можете наклипать мне код..Суть кода должна быть такой когда пользователь закрывает программу...

После закрытия Excel процесс остается
Я сразу извеняюсь перед теми, кому покажется этот вопрос ламерским. Формирую в одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru