Консультация № 174729
01.12.2009, 09:04
35.00 руб.
01.12.2009, 11:40
0 27 1
Здравствуйте!
Необходимо разработать клиент-серверное приложение на С++(С++.NET) c возможностью работы с движком БД (например, MS SQL Server Express Edition-ограниченная версия, т.е. передача только через память)
На сервере имеется файл базы данных .mdf (содержится ряд таблиц) с которым производится работа
Итог работы: клиент-направляет запрос на выборку серверу-сервер имея доступ к базе вытаскивает необходимую информацию и отправляет клиенту
(URL >>файл базы данных)
Спасибо!!!

Обсуждение

Неизвестный
01.12.2009, 10:42
общий
Миронычев Виталий:
файл базы данных будет выложен в разделе мои файлы-DB.mdf

Это где? ссылку укажите.
т.е. передача только через память
в смысле?
Версия сервера не имеет значения, достаточно указать просто СУБД (MS SQL в данном случае).
Это обычное клиентское приложение которое подключается к серверу и работает с данными (получает выборку, вносит изменения, удаляет. добавляет).
Работа ведется не с каким то файлом - клиент и понятия не имеет (и не должен) о файлах в которых хранится база данных а с сервером баз данных ( MS SQL Server ).
А сервер - это обычная СУБД, MS SQL Server Express Edition в Вашем случае функционально не ограничена за исключением ограничений на размер БД, памяти и количество процессоров..
все верно?
-----------------------------------------
Если хотите получить ответ тут - задайте более конкретные вопросы. А просто задание, как написали Вы - задавать надо URL >>ТУТ
Неизвестный
01.12.2009, 11:33
общий
ссылка для скачивания файла
https://rfpro.ru/upload/1111
Неизвестный
01.12.2009, 11:36
общий
Итог работы: клиент-направляет запрос на выборку серверу-сервер имея доступ к базе вытаскивает необходимую информацию и отправляет клиенту
Как реализовать это на С++?
Неизвестный
01.12.2009, 11:58
общий
Миронычев Виталий:
Цитата: 289029
клиент-направляет запрос на выборку серверу-сервер имея доступ к базе вытаскивает необходимую информацию и отправляет клиенту

Цитата: 289029
Как реализовать это на С++

Какая среда программирования? С++Builder, VS ?
Я все это уточняю не потому что это обязательно сделают - а что бы если кто захочет делать, знали на чем надо делать.
Посмотрел Вашу базу - для разработки приложения, требуется подробное описание как инфологической модели так и бизнес логики.
У Вас 17 таблиц, которые нужно как то связывать и данные в которых должны подчиняться определенным правилам.
Проще и быстрее это сделать на С++Builder - он для этого предназначен ну или на С#. На "чистом" С++ создать приложение для работы с базой данных не так тривиально и требует намного больше времени и труда что не стоит того.

PS:
Ни ваше приложение ни кто другой к файлу *.mdf (кстати, вместе с этим файлом надо сохранять и лог файл с расширением *.ldf) не имеют никакого отношения. Это база данных, которая подключается к MS SQL серверу и только он работает с этим файлом. Я это к тому, что Вы повторно пишите "сервер имея доступ к базе вытаскивает необходимую информацию и отправляет клиенту" что говорит о недопонимании технологии.
давно
Профессор
230118
3054
01.12.2009, 12:15
общий
Миронычев Виталий:
Согласна с модератором. В форме ответа невозможно выложить целое приложение. Не указано, что именно требуется показываеть пользователю.
Неизвестный
01.12.2009, 12:48
общий
Поймите меня правильно:
Мне необходимо именно само взаимодействие (начальный вариант) клиент-сервера (клиент нажимет на кнопку и у него на интерфейсе - допустим DataGreedView или какой-то ActiveX-компонент появится таблица из базы данных)
Спасибо
Неизвестный
01.12.2009, 12:50
общий
Реализацию клиента можно на С# , а сервер желательно на C++
И не надо никакого описания структур таблиц-любая таблица
Меня интересует именно само взаимодействие
Неизвестный
01.12.2009, 13:10
общий
Миронычев Виталий:
Цитата: 289029
а сервер желательно на C++

Да не надо писать никакого сервера. Я же вам уже сколько раз говорю. У вас MS SQL - это уже и есть сервер! Ненадо писать никаких серверов.
Есть многозвездная технология, использующая сервер-приложений. Ну дак это другая тема совершенно! В этом случае действительно есть сервер (приложение, как правило, в виде службы) который слушает запросы на определенном порту принимает эти запросы от клиентов и транслирует их опять же - серверу баз данных (т.е. MS SQL).
Вы путаете с организацией Access - там действительно идет подключение непосредственно к файлу базы данных.
В случае с MS SQL вы подключаетесь не к файлу (о нем даже и не подозреваете) а к определенному порту MS SQL. Дело в том, что теоретически, данные могут лежать и на RAW (не размеченном) разделе, данные могут быть "размазаны" мо множеству файлов, и вообще, если вы думаете что вся БД MS SQL лежит в одном файле - то заблуждаетесь, это может быть целый каталог и часто это разбросано по разным дискам.
MS SQL – это и есть сервер который обслуживает клиентов. не требуется писать еще какие то сервера, да и к тому же, использовать чистые API для прямого доступа к базе (к файлам) не получится - продукт MS не открытый и нет спецификации. Только посредством MS SQL.
-------------------------------------------
Возможно, мы просто не совсем понимаем Вас.
давно
Профессор
230118
3054
01.12.2009, 13:22
общий
Миронычев Виталий:
В учебных примерах к Visual Studio были программы, работающие с базой. Возможно, вам нужно что-то подобное? У меня есть такие программы.
Неизвестный
01.12.2009, 13:51
общий
Ashotn:
Пожалуйста,покажите что у вас имеется
Возможно мне это подойдет
Неизвестный
01.12.2009, 13:55
общий
Victor Pyrlik:
Вы все правильно говорите, но про MS SQL Standart Edition
Но если работаем с MS SQL Express Edition- там можно работать только локально (через память)
В SQL Configuration Manager-Protocol (Shared Memory)

Спасибо
Неизвестный
01.12.2009, 14:19
общий
Миронычев Виталий:
В SQL Server 2005 предусмотрено четыре сетевые библиотеки.
1 Shared Memory (в списке в SQL Computer Management выглядит как Sm) — эта библиотека используется только для локальных подключений (т. е. подключений с того же компьютера, на котором установлен SQL Server 2005), как правило, утилитами администрирования. Это новая сетевая библиотека, которой не было в предыдущих версиях SQL Server. По умолчанию она включена во все редакции SQL Server 2005.

2 Named Pipes (Np) — именованный канал в оперативной памяти, в который одни процесс передает информацию, а другой — считывает. Может использоваться как для локальных, так и для удаленных подключений. Чаще всего он используется для локального подключения утилит администрирования предыдущих версий SQL Server, например, SQL Server 2000. По умолчанию для всех редакций SQL Server 2005 эта библиотека отключена.

3 TCP/IP (Tcp) — самая популярная сетевая библиотека, которая используется в подавляющем большинстве случаев и почти всеми клиентскими приложениями. Как ни удивительно, но в SQL Server 2005 она по умолчанию включена только в редакции Enterprise Edition. Для всех остальных редакций ее придется включать вручную после установки.

4 VIA (Via, Virtual Interface Adapter — адаптер виртуального интерфейса) — экзотическая сетевая библиотека, которая используется только со специальным сетевым оборудованием. Также по умолчанию отключена во всех редакциях SQL Server 2005.

На всякий случай подчеркнем еще раз: если вы используете любую редакцию SQL Server 2005, отличную от Enterprise Edition, то для обеспечения работоспособности многих клиентских приложений вам придется после установки вручную включить сетевую библиотеку TCP/IP!

SQL Server Express Edition бесплатно распространяемой версией SQL Server. Данная версия имеет некоторые технические ограничения. Такие ограничения делают её непригодной для развертывания больших баз данных, но она вполне годится для ведения программных комплексов в масштабах небольшой компании. Содержит полноценную поддержку новых типов данных, в том числе XML-спецификации. Фактически, это полноценный MS SQL Server, включая все его компоненты программирования, поддержку национальных алфавитов и Unicode. Поэтому используется в приложениях, при проектировании или для самостоятельного изучения. Нет никаких препятствий для дальнейшего развёртывания накопленной базы данных на MS SQL Server неэкспрессной версии. В 2007 году Microsoft выпустила отдельную утилиту с графическим интерфейсом для администрирования данной версии, которая также доступна для бесплатного скачивания с сайта корпорации.
Ограничения
1 поддерживаемый процессор (но может быть установлен на любой сервер)
1 Гб адресуемой памяти
4 Гб максимальный размер базы
Через интерфейс нет возможности экспорта/импорта данных

Возможно, вы говорите о SQL Server Compact Edition - там есть эти ограничения.
А вот и инструмент для управления вашим сервером URL >>Microsoft SQL Server Management Studio Express
А вот и сам сервер URL >>Microsoft SQL Server 2005 Express Edition
давно
Профессор
230118
3054
01.12.2009, 15:07
общий
Миронычев Виталий:
Могу сказать алгоритм создания приложения на Visual Studio 2005(2008)
давно
Профессор
230118
3054
01.12.2009, 15:16
общий
Миронычев Виталий:
На самом деле все просто - надо создать проект и указать, что требуется поддержка баз - database support. При этом выбрать соединение с SQL Server и указать файл mdf.
давно
Профессор
230118
3054
01.12.2009, 15:32
общий
Визард создает пустое приложение. После этого надо выбрать рекордсет, который нужно будет в нем отображать, и добавить поля в форму.


Советую прочитать http://msdn.microsoft.com/en-us/library/ms171890.aspx
Неизвестный
01.12.2009, 19:52
общий
Ashotn:
Вы можете помочь разработать сам проект?
давно
Профессор
230118
3054
02.12.2009, 12:59
общий
Действительно, непонятно, зачем нужна программа-сервер. Нужен лишь клиент. Такая программа делается в полчаса. Но это
Вас устроит ли, не знаю.
Неизвестный
02.12.2009, 16:47
общий
Ashotn:
Будьте добры,покажите клиентскую часть (посмотрим будет ли он работать с MS Server Express Edition-на удаленной машине: если да, то мои извинения...)
Спасибо
давно
Профессор
230118
3054
02.12.2009, 21:33
общий
Миронычев Виталий:
Не знаю, у меня нет удаленной машины.
Неизвестный
02.12.2009, 21:59
общий
Ashotn:
Ну вы,пожалуйста,все равно покажите клиентскую часть
давно
Профессор
230118
3054
03.12.2009, 00:09
общий
Это было сделано без написания кода. Просто создала приложение web forms, создала привязку к базе данных и перетащила таблицу на форму. Это можно сделать как в С++, так и C#. По какому адресу можно послать?
давно
Старший Модератор
17042
808
03.12.2009, 06:47
общий
Ashotn:
Обобщите кратко положения, высказанные в мини-форуме, и подайте в качестве ответа. В ответе дайте ссылку на архив созданного Вами проекта. Считаю, что этого достаточно.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
давно
Профессор
230118
3054
03.12.2009, 15:49
общий
Dr_Andrew:
Как создать архив?
давно
Старший Модератор
17042
808
03.12.2009, 15:58
общий
Ashotn:
Архиватором.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
давно
Профессор
230118
3054
03.12.2009, 16:02
общий
Dr_Andrew:
Написано, что услуга платная. можно дать ссылку на другой ресурс?
давно
Старший Модератор
17042
808
03.12.2009, 16:08
общий
Ashotn:
Да, разумеется.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
давно
Профессор
230118
3054
03.12.2009, 16:59
общий
это ответ
Здравствуйте, Миронычев Виталий.

Описание: создается проект winforms. В меню data выбирается add data source. Если сервер удаленный, возможно, надо использовать ODBC. В данном случае файл находится в D:\SQL Server 2000 Sample Databases. В Data Source Задается Microsoft SQL Server Database File (SqlClient). Используется Windows Authentification. В результате создается строка соединения в файле DBDataSet.h, строка 17098. Подправьте ее, если нужны другие параметры. Далее из окна DataSource перетаскиваете на форму нужную вам таблицу или запрос. Здесь это PlanCurrent. При запуске на форме GridView с возможностью редактирования.

http://narod.ru/disk/15624767000/database3.rar.html
4
Форма ответа