Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
29 / 29 / 1
Регистрация: 01.10.2010
Сообщений: 171

Открытие таблицы не закрывая предыдущее соединение MSSQL

24.12.2012, 13:03. Показов 1535. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть база на ms sql, соединение через sql client
есть функция, которая открывает таблицу, достает значения и вызывает саму себя с этими значениями. sql client не позволяет сделать это, он требует закрыть предыдущее соединение.

Как вариант пробовал работать через dataset и datatable, но это кушает много ресурсов, если функция вызывает себя 10 и более раз.

Как это можно реализовать с sql client? до этого база была на аксесе без sql clienta и там данный алгоритм работал.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2012, 13:03
Ответы с готовыми решениями:

Открытие новой формы не закрывая предыдущую
Доброго всем дня. Столкнулся с такой проблемой. Нужно открыть новую форму(настройки) и оставить на прежнем месте, ту форму, откуда она...

Ошибка при соединение с MSSQL
Добрый день, пишу программу которая работает с базой данных MSSQL 2005, подключаюсь к базе через TCP\IP. И у меня выдаёт ошибку Общая...

C# + MSSQL: Соединение с базой данных
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; ...

6
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
25.12.2012, 17:53
а смысл этой функции? действительно ли необходима рекурсия??? в 9 из 10 можно обойтись без рекурсии.

как вариант в необходимую функцию добавьте параметр SqlConnection.
Далее в другой функции создаете соединение и вызываете необходимую функцию, передав в нее подключение и фуyкция при вызове самой себя передает себе же то же самое подключение.

Прим Одновременно может быть только один-единственный SqlDataReader и никак иначе. Если существует reader с открытым подключением, то новый вы не сможете создать, пока не закроете старый.
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
26.12.2012, 17:07
Можно, конечно, сделать второе соединение, но... Может быть проще сделать рекурсивный запрос к базе? С помощью предложения WITH. См. http://msdn.microsoft.com/ru-r... 90%29.aspx
0
29 / 29 / 1
Регистрация: 01.10.2010
Сообщений: 171
27.12.2012, 08:40  [ТС]
Learx, у меня несколько функций таких, например заполнение treeview - функция принимает id страницы, функция добавляет страницы у которых id_parent=id, и перед добавлением вызывает саму себя, дабы добавить еще подстраницы и подподстраницы и т.д. Как иначе можно это сделать?

Добавлено через 3 минуты
kmi, второе соединение это конечно же глупо, единственно если сделать второе соединение через ADODB, но честно говоря не знаю на сколько это будет правильно и вообще если создавать соединение через adodb, то через sql client можно не создавать. А какие могут возникнуть проблемы если соединяться через adodb? чем плохо его использовать? что я потеряю если буду его использовать? с ним таких проблем не возникнет, уже проверял.
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
27.12.2012, 10:36
А какие могут возникнуть проблемы если соединяться через adodb? чем плохо его использовать? что я потеряю если буду его использовать? с ним таких проблем не возникнет, уже проверял.
Нужно будет аккуратно разруливать блокировки. Причём руками. Иначе в какой-то момент прога зависнет.

Ещё раз советую посмотреть в сторону рекурсивных запросов. Дерево они совершенно корректно формируют.
0
29 / 29 / 1
Регистрация: 01.10.2010
Сообщений: 171
10.01.2013, 09:48  [ТС]
kmi, а можешь пример заполнения дерева написать?
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
11.01.2013, 13:02
Дык ссылку я же давал
http://msdn.microsoft.com/ru-r... 90%29.aspx
Там всё разжёвано до безобразия, причём на чистом русском. И пример есть с подробным объяснением. Строится иерархия служащих от начальника до сотрудников отделов. Каждый шаг выполнения запроса прокомментирован с показом промежуточного результата.
Обратная иерархия (вывод списка начальников данного сотрудника) реализуется аналогично.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2013, 13:02
Помогаю со студенческими работами здесь

Не идет соединение с базой MSSQL на других ПК
Есть база *.mdf, на компе где компилируется - есть соединение с этой базой, но ели запускать на другом компе, то соединения нет. Как...

Перегруппировка таблицы в mssql
Допустим, есть таблица: ID | NUM 5 | 56 5 | 34 8 | 52 4 | 53 3 | 42 3 | 11 3 ...

Конвертация таблицы MSSQL в Excel
Работаю с SQL Server. Создаю временную таблицу ##s, заполняю ее значениями и хочу перенести их в Excel, посредством вот такого выражения: ...

MSSQL+asp+временные таблицы
Проблема - организация сложного многоступенчатого ввода данных. Подскажите, как организовать ввод данных, если: существует ряд...

Экспорт таблицы из MSSQL в Excel
Здравствуйте, ребята! Требуется экспортировать таблицу из MSSQL в Excel. Я поняла, что это можно делать разными способами. Хотела...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru