Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
естественно стОит, ну не начинать же тратить время на изучение тупиковой тулзы. |
||||||||
9 июн 15, 10:17 [17748017] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Спасибо, порадовался :-) Фирма 1С делает тормозной продукт только, вдумайтесь, из-за технологии Com. А вот перешли на TCP, и их сервера залетали ![]()
Если речь идет о межхостовом соединении, то ничего не скажу, не в курсе. А если на локальном - именованные каналы шустрее tcp. ТС: если работал в аксесе, то ИМХО проще освоить Delphi. Если подходить с точки зрения перспектив по фронтэнду, то это .Net/C#/WPF (или ASP.NET). Если backend, то пожалуй Java поинтереснее. |
||||
9 июн 15, 10:41 [17748210] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Никто не говорит, что скорость работы 1С всех устраивает. Просто, если бы они не перешли на прямое использование TCP/IP, то тормоза были бы еще больше. А так автор топика поднял интересный вопрос, какой клиент лучше использовать для работы с SQL сервером? Наиболее интересен ответ для корпоративного случая. Предсказуемое разнообразие реплик говорит, что эффективного готового решения никто предложить не может. Остается либо приспосабливать готовых клиентов, либо писать собственные. Второй путь только для локальных задач. Если стоит вопрос об использовании корпоративного решения, то лучший вариант на мой взгляд это нестандартное использование файловых (толстых) клиентов 1С – только в двухзвенке и только с разделением доступа к данным и поддержкой двух баз – одной распределенной по клиентам и другой – централизованной, расположенной на SQL сервере с независимой (максимально плоской) структурой. Платой за это будет дополнительная разработка собственного механизма репликации и техники эффективного обмена xml-пакетами между внешней компонентой 1С и хранимыми процедурами на сервере баз данных. Вместо того, чтобы обсуждать «слона» (использование параллельных баз данных, независимого SQL сервера и монопольных клиентов) мы прицепились к «мухам», которые летают вокруг него. Ну не хотите использовать во внешних компонентах прямой доступ к WinAPI (Socket2) – используйте на здоровье ADODB либо другую подобную технологию. Для начала это вариант годится, а впоследствии решение будет, как и у фирмы 1С – осознание необходимости перехода на прямое использование TCP/IP в локальной сети.
Если бы речь шла о локальном использовании, то тогда однозначно выбор за разделенной памятью. Например, если пытаться реализовать нашу схему в варианте терминального сервера, что, на мой взгляд, тоже вариант. А так пока речь идет о локальной сети.
Много вариантов равно отсутствию хорошего варианта :) . |
||||||
9 июн 15, 11:33 [17748577] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Говорю сразу, если специфический доступ к железу не нужен, то Web без вариантов. Всякие принтеры, камеры, микрофоны итак поддерживаются.
Все известные мне ПОПУЛЯРНЫЕ CRM системы - Web. Отзывчивость меньше, чем у Desktop-вариантов, но на достаточном уровне.
Да это бред вообще. Какой TCP? Нативный протокол для SQL Server - это TDS. Он закрытый. Вы собираетесь руками его реализовывать? Или заниматься ерундой и юзать не SQL-интерфейс скуля?
Провентилировал вопрос. В хорошей сетке named pipes быстрее Tcp. И наоборот, если есть какие то лаги, то Tcp более интересный выбор.
Угу, точно. Конечно, вы не знаете, что под задачу подбирают инструмент. Нежелание оценить нюансы использования того или иного инструмента лишь свидетельствует о вашем недостаточном опыте, а категоричность - о молодости. |
||||||||||||
9 июн 15, 11:48 [17748707] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Ну, говорить, не делать. Наверное, мы по-разному понимаем слова «корпоративные решения» (для учетных систем предприятия). Для Интернета хорош Веб, а для учета – тонкие клиенты это вынужденное зло. Кому нравиться это садо-мазо – флаг в руки. Я лично постою в сторонке.
«Не болтайте ерундой!» :) . Причем тут TDS? Нам достаточно, что SQL Server слушает определенные порты и принимает там соответствующие запросы от клиента. Сами эти запросы можно формировать на базе TCP/IP либо более высокоуровнего интерфейса, при желании. Главное, чтобы соблюсти протокол доступа к серверу. Этот момент тоже можно обсуждать, например, предложить простейшего консольного клиента на С++ для доступа по сети к SQL серверу с простейшим запросом (например, номера его версии). Поиск на codeproject.com дал несколько хороших примеров, правда, только не к самому SQL серверу, а просто к аналогичному консольному серверу. Предложите подобный вариант консольного доступа к серверу баз данных – цены Вам не будет, как специалисту. Причем не обязательно его реализовывать напрямую через WinSocket2, можете задействовать любой сетевой вариант, какой Вам нравится. Так что давайте пока TCP/IP вынесем за скобки переговоров, чтобы сохранить договороспособность. Цель – продемонстрировать простейший пример доступа по сети к SQL-серверу (последних версий) по любому протоколу с простейшим вызовом хранимой процедуры и взаимной передаче некоторых xml-пакетов от клиента к серверу и наоборот.
О каких нюансах Вы говорите? О своих собственных? У меня есть свои нюансы и именно под них я предлагаю свое решение. Оно не подходит под Ваше решение? Но это как бы естественно. Предлагайте свой вариант. Желательно не «вообще», а конкретно. А категоричность, по Вашему, это когда с Вами не соглашаются? :) |
||||||||
9 июн 15, 12:26 [17748913] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Конечно. ![]()
TDS
:-) Я таких серверов и клиентов ваяю, поэтому и говорю, с MS SQL такое отнюдь не просто.
А в чем проблема? Кстати, можно пруф на 1С? Есть у меня подозрение, что ты что-то неверно интерпретировали. |
||||||||
9 июн 15, 13:19 [17749285] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Ага, который «закрытый».
Ну почему сложно? На базе Net Framework вполне просто: Client For SQL Server Databases in C# .NET REMOTING using SQL Server Beginners guide to accessing SQL Server through C# How to connect SQL Database to your C# program, beginner's tutorial Using C# to connect to and query from a SQL database И т.п. Другое дело, что нет подобных примеров на чистом WinAPI и С++.
Да в принципе ни в чем, вопрос только времени, поскольку тема для меня новая.
Пруф чего? Я просто собираюсь написать собственный вариант внешней компоненты для обмена xml-пакетами между 1С (любой версии) и SQL сервером последних версий. В качестве ближайшего прототипа нашел: Обмен массивами данных с внешними компонентами 1С. Тоже на хабре. Это не совсем то, что нужно, но для начальной работы вполне подойдет. |
||||||||||||||
9 июн 15, 14:27 [17749769] Ответить | Цитировать Сообщить модератору |
Okmor Member Откуда: Сообщений: 132 |
Я не понимаю при чем тут технологии COM и TCP? Нафига вам прослойка из 1С и ее извращенный кириличный синтаксис? Тут уж лучше VisualFoxpro использовать. :-) Для базы до 100 клиентов это не важно. Локальные базы из репликацией или синхронизацией это воооообще не трогайте. На поддержку таковых вам пол жизни уйдет, а качать справочники на 150 записей смысла нет. Для клиента важно: 1. Вносить информацию. 2. Делать примитивные отчеты. Для Кулибина-программиста важно: 1. Хорошо документированная среда программирования. 2. Легкоусвояемая среда программирования. 3. Набор готовых компонент типа ADO клиентов и несколько красивых Гридов. |
9 июн 15, 14:31 [17749791] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
Какой Remoting? попроси модератора вытереть эту муть, и остальное тоже. REMOTING using SQL Server using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; Это старьё, хотя для сторонников делфи и 1с такого понятия не существует ![]() |
||
9 июн 15, 14:45 [17749907] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Но это же не Tcp в вашем понимании? Это ваш нелюбимый Com
Правильно, тк такой ерундой никто не занимается Я кажется понял, в чем у нас недопонимание. 1С работает через некий Com-компонент (ActiveX?) с БД. Это показалось медленно, и они перешли на OLE DB, который вы по недоразумению называете Tcp |
||||
9 июн 15, 14:52 [17749967] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
А чё мы так нервничаем? «Зевс – ты сердишься, значит, ты не прав!» Наверное, это «очень трудно за деревьями увидеть лес». Речь шла только о демонстрации принципиальной доступности к SQL серверу из простейшего приложения (поскольку утверждалось, что это сложно). На самом деле это не сложно, что и было продемонстрировано. Никто не утверждает, что именно так и надо делать. Я хочу работать с SQL сервером через WinAPI (из 1С с помощью внешних компонент). Можете предложить хороший способ – предлагайте, не можете, тогда критикуйте, что Вы впрочем, и делаете (а что еще остается?). |
||
9 июн 15, 14:56 [17749999] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Не надо путать теплое с мягким. Работать через голый Tcp и через WinAPI с MS SQL - это даже трудно назвать жестью. Но работа через SqlClient/OLEDB/ODBC - это просто. Но это не Tcp. Про внутренности SqlClient не скажу, но остальное - это Com. И работает вполне себе шустро. |
||
9 июн 15, 14:59 [17750042] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Локальное использование COM не есть грех. Внешние компоненты 1С8 поддерживают два интерфейса: IComponentBase (который они называют NativeAPI) и IDispatch (COM-интерфейс). Как по мне это «одного поля ягодки». Поэтому не суть важно, посредством чего я получу доступ к локальному WinAPI. А вот далее, для работы в сети, хочу использовать библиотеку WS2_32.dll.
Это мне напоминает поговорку: «В мире есть много вещей, которые мне . . . – не нужны!». Я так понимаю, доказательство ерундовости основывается на сугубо субъективном ощущении. Могу предположить, что при проектировании платформы 1С такая техника использовалась, другое дело, что они не считают нужным ее публиковать. Ах да, я забыл: «1С это лохи и неудачники, хотя и гребут деньги лопатой».
Да нет, там все реализовано правильно. Другое дело, что все решения 1С в первую очередь коммерческие и только затем – технические. Но у ребят задача рубить бабло, па не заниматься меценатством. Нам всем это не очень нравиться. Но что мы можем поделать? – Разве что потребовать установить «цифровой коммунизм в отдельно взятой стране». Но это уже политика. |
||||||||
9 июн 15, 15:18 [17750171] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Да, но смотрим примеры на codeproject.com и видим: Single Server With Multiple Clients : a Simple C++ Implementation A Generic C-Language TCP Client Application Sending Files using TCP И т.п. Т.е. люди работают непосредственно с TCP/IP и не жалуются. Осталось только через него выйти на SQL. Но даже если это невозможно, то найти наиболее приемлемое решение. COM, COM+, DCOM, это для использования в сети многие критикуют, что и напрягает. |
||
9 июн 15, 15:36 [17750338] Ответить | Цитировать Сообщить модератору |
Arm79 Member Откуда: МО, Раменское Сообщений: 3692 |
Emery, Еще раз. Работать с Tcp просто. Работать без прослоек с MS SQL через Tcp - это сложно. Это фактически свой провайдер/драйвер данных. Может, вы нормально в ветке форума Программирование изложите что вы хотите, а вам нормальную архитектуру присоветуют? Здесь просто профильный топик, забанят нас к черту. Будет обидно попасть первый раз в бан за 8 лет моей регистрации здесь :-) |
9 июн 15, 16:38 [17750800] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
я не знаю почему вы так нервничаете, но зачем же фигню городить и еще и настаивать? Пример по устаревшему Remoting как удаленному клиенту работать с сервисом(!) А подключение сервиса к SQL Server - это как приложение: public DataSet GetDataFromDatabase(int catID) { SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=1234;database=northwind"); SqlDataAdapter da = new SqlDataAdapter("select productname,unitprice from products where categoryid=@a", cn); da.SelectCommand.Parameters.AddWithValue("@a", catID); DataSet ds = new DataSet(); da.Fill(ds, "abc"); return ds; |
||||
9 июн 15, 16:53 [17750954] Ответить | Цитировать Сообщить модератору |
Двоичник Member Откуда: Бобруйск Сообщений: 326 |
очень много почитал тут позновательного и себе множество галочек поставил. фиг с ним что я останусь при своем мнении, но готов его поменять в принципе. потому как весомых довыдов в пользу одного или другого я прочитал достаточно. Хотя признаться честно, сижу и потираю ягодицами с мыслями о том, что делфи это умеет и это может, и так не проблема... Но к топикастеру все же просьба, написать в конечном итоге, что он решил для себя, какими довыдами руководствовался и что было проигрышно, а что выигрышно при его выборе. спс |
9 июн 15, 17:42 [17751279] Ответить | Цитировать Сообщить модератору |
Emery Member Откуда: Украина Сообщений: 766 |
Это серьезное замечание! Однако меня вполне устроит работа с родным драйвером – SQL Server Native Client. В Qt на него можно выйти через ODBC драйвер. В крайнем случае, родной драйвер SQL в 1С можно подключить через тоже ADODB, о котором тут весь сыр-бор. В толстых книжках по SQL советуют использовать ADO.NET. После разного рода экспериментов можно будет выбрать приемлемое решение. Но для меня это вопрос не принципиальный, главное это возможность работать напрямую с сервером баз данных из толстого клиента 1С без использования сервера приложений. Но вместо главного вопроса мы начали обсуждать детали реализации, смысл которых только один – быть достаточно эффективными. А нюансы можно решать в рабочем порядке, абсолютного значения они не имеют.
Да я в принципе знаю, что хочу, советов особых мне не надо. Я просто поделился своей идеей, как из трехзвенки 1С сделать двухзвенку. Естественно, любителям стандартных решений такие советы ни к чему. Что-либо выяснять дополнительно либо доказывать свою правоту – мне не нужно. На уровне концепции все понятно, а детали реализации будем решать по ходу дела. Возникнут конкретные вопросы – спрошу, а пока я вполне удовлетворен дискуссией, которую уже можно сворачивать, по крайней мере, по моей тематике. |
||||
9 июн 15, 18:27 [17751524] Ответить | Цитировать Сообщить модератору |
кириллk Member Откуда: Сообщений: 1058 |
Emery, А я ищу замену SSRS остановился на MVC но он не умеет работать с кубами olap |
9 июн 15, 18:41 [17751603] Ответить | Цитировать Сообщить модератору |
zeon11 Member Откуда: Сибирь, Кемерово Сообщений: 1252 |
Может ТС такой вариант подойдёт? https://www.devart.com/unidac/ Universal Data Access Components (UniDAC) is a library of components that provides direct access to multiple databases from Delphi, C++Builder, Lazarus (and Free Pascal) on Windows, Mac OS X, iOS, Android, Linux, and FreeBSD for both 32-bit and 64-bit platforms. We have combined the experience of long-term successful development into one product, which provides unified access to multiple database servers like Oracle, Microsoft SQL Server, MySQL, InterBase, Firebird, PostgreSQL, SQLite, DB2, Microsoft Access, Sybase Advantage Database Server, Sybase Adaptive Server Enterprise, and other databases (using ODBC provider). с SQL Server общается через DB Client |
9 июн 15, 19:09 [17751738] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
что вам сделал ТС, который кстати пока держится, респект ему! Нафига ему сдался весь этот антиквариат и металлолом? И эти сомнительные универсальные решения? Пусть берет бесплатную VS2013, изучает WinForms и вперед! |
||
9 июн 15, 21:31 [17752400] Ответить | Цитировать Сообщить модератору |
Артем G Member Откуда: Сообщений: 500 |
если нужно получить результат быстрее, то начни с WinForms + Entity Framework. WPF по моему сложнее для начинающего чем формы. ссылку на комьюнити версию студии по моему дали на второй странице. пока будешь управляться с формами и EF параллено подтянешь знания по самому Framework. после можно будет перейти при желании на MVC и параллельно посмотреть WPF. |
10 июн 15, 00:37 [17753035] Ответить | Цитировать Сообщить модератору |
wamaco Member [заблокирован] Откуда: Сообщений: 678 |
Изерлонер, берите Delphi XE8, будете довольны! гарантирую! |
10 июн 15, 01:53 [17753150] Ответить | Цитировать Сообщить модератору |
Santa89 Member Откуда: Сообщений: 1494 |
Используйте Visual Studio + VB или C# и всё получится! Вот мой первый опыт к примеру: https://www.sql.ru/forum/1116332/nuzhen-funkcional-dlya-dwh-chtoby-zapolnyat-takoy-spravochnik |
10 июн 15, 05:56 [17753197] Ответить | Цитировать Сообщить модератору |
Изерлонер Member Откуда: СФО Сообщений: 1269 |
Ну окончательно я не определился, но Visual Studio 2013 скачал и установил. Так же достал учебник по C#: "Полное руководство С# 4.0" Герберт Шилдт. Прочел уже 100 страниц - сложностей на текущий момент не испытывал - все элементарно. Они обязательно возникнут на этапе освоения WPF и создания приложения для базы данных. (Кстати, было бы замечательно если кто-нибудь дал ссылку на толковый учебник и по этой теме). Вторым (запасным) вариантом - остается пока сам MS Access, но более поздних версий - там останавливают сложности со связью приложения на Access с базой на MS SQL Server. ADP почил в бозе - а как это сделать иначе, я пока не знаю - хотя в личке подсказывают. Ну и отсутствие доступных библиотек готовых компонентов здесь тоже минус. Делфи пока не рассматриваю. Да, у меня был в свое время не большой опыт программирования в Борланд Делфи - и я не скажу о нем ничего плохого, это мой первый опыт... ну если не считать опытом использование Basic, на компьютре "Вектор 06Ц" когда мне было лет 14 :) Однако при всех своих плюсах - тренд пока задает Microsoft. Впрочем рациональных объяснений сформулировать здесь вряд ли смогу. ... Еще в бытность мою студентом все интересующиеся как-то восторженно настроены были по отношению к языкам С. Я не программист по специальности, "а программисты те все на С++, вот это круть" - вот этот давнишний настрой тоже наверное влияет. |
||
11 июн 15, 05:45 [17758068] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |