powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Будет ли жить такой проект? mdb + MS SQL Server
23 сообщений из 23, страница 1 из 1
Будет ли жить такой проект? mdb + MS SQL Server
    #32117736
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация простая - пишется под заказ программа финансового учета (товары, деньги), за неплохие прямо скажем деньги. БД на MS SQL Server'e - типа всё круто. Но клиенты реализованы как mdb с прилинкованными таблицами и естественно это все работает медленновато (мягко говоря) - некоторые формы могут открываться по 20 сек (это при абсалютной незагруженности сети)
Все мои доводы, что так реализовывать неправильно игнорируються.

Так вот в чем вопрос, долго ли будет жить такой проект?
Если учесть, что ожидается работа одновременно до 30 пользователей, количество записей в таблице товаров порядка 10 - 20 тыс и документов от 100 тыс и выше.
Не загнется ли это все в один прекрасный момент? У кого нить был опыт создания подобных систем?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32117755
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работать то он может, только вот надо его переработать. Если правильно переписать эти медленные формы, станут они быстрыми даже при такой технологии, хотя чего уж тут спорить, технология эта сильно устарела.
От числа записей и пользователей, однако же, она практически не зависит, особенно если немного попереписывать формы и запросы так, чтобы они НИКОГДА не возвращали много записей.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32117822
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет, долго будет :), те параметры что ты привел, не нагрузка для sql server'a, ну а тормознутось клиентов определяется не только технологией, но реализацией.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32117849
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен. что для sql server'а это не нагрузка, но тут по-моему самое слабое место - не это. Самое слабое здесь - это клиенты, которые используют устаревшую технологию, благодаря чему те же выборки данных осуществляються дико медленно, а от этого уже никуда особо не уйдешь. И по-моему тут вся нагрузка ляжет на сеть, поэтому скорость в любом случае будет зависеть от кол-ва пользователей, т.к. чем больше юзверей тем больше даных качается по сети => медленнее работает. (или я что-то не понимаю?)
А насчет того, чтобы переписать формы ... они и так уже периписаны на сколько это возможно.
Допустим есть форма с 10-ю комбобоксами в каждый из которых возвращаеться список (пусть даже не большой), то во время загрузки этой формы откроется и закроется как минимум 10+1 разных коннектов к базе, и будет работать это медленно, как не переписывай. К тому же уже сейчас используеться такой (ИМХО) изврат, как загрузка в комбы только одной -нужной записи, а остальные записи загружаеются только по событию OnMouseDown (но это не сильно помогает)
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32117965
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет работать вечно, но скорее всего меньше - пока мелкомягкие не откажутся от поддержки mdb.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118274
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин ... очень смешно!

А можно тогда еще вопрос: Если бы Вы были директором крупной торговой компании, то купили бы такой "клиент-сервер" ?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118316
ДИРЕКТОР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет!!!
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118318
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сложно найти директора торговой компании, разбирающегося в таких тонкостях.

Я бы не купил. Потом ведь обязательно пойдут проблемы с блокировками и так далее...
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118418
Игорек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будет, еще как будет, вот увидишь!!! Вот в нашей организации уже несколько лет используется такая штука, а еще FoxPro+MS SQL Server. Удаленность SQL Servera до клиента составляет до нескольких десятков километров!!! Когда идет запрос от клиента к SQL серверу можно пойти покурить и еще выпить чашечку кофе и немного отдохнуть!!! Вот когда протянут оптоволокно и будет сеть ISDN, думаю, что будет работать быстрее, но это мечты.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118472
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще-то серьёзно говорил. Вот уже года четыре такая байда работает и не жужжит. С блокировками проблем никаких (вернее, те же, что и при работе через ADO), потому что само по себе подключение таблицы ничего не блокирует.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118606
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то, году в 1997, закончили разработку системы, подобной сабжевой. Я уже забывать об этом стал. Меня сильно удивило, что все работает до сих пор - просто случайно узнал.
А один мой знакомый до сих пор пишет на A1. Интерфейс - просто супер, фирменная софтинка! К сожалению это самое лучшее, что есть в его приладе..
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118841
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впринципе я согласен, но это пишется как коммерческий продукт из расчета на то, что он будет потом успешно продаватся, так не лучше ли сразу написать как нужно ... например хотя бы как проект ADP?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118855
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно лучше (быстрее, надежнее и т.д.)
Только, IMHO, коммерческий проект лучше писать в более 'низкоуровневой' среде разработки.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118924
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- за неплохие прямо скажем деньги
- Все мои доводы, что так реализовывать неправильно игнорируються.

Ну и тебе не пофиг?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118948
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и тебе не пофиг?

Мне то наверное должно быть пофиг, но почему то нет.
А если такой вариант реализации не понравиться заказчику и он от него либо откажется, либо просто всем расскажет - чтобы не покупали этот софт в нашей фирме?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118954
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...либо просто всем расскажет - чтобы не покупали этот софт в нашей фирме?
Всем? Вот это промоушен, просто супер!
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32118972
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну млин ... не всем, конечно. Я не то имел ввиду.
Но! ... Если у нас есть клиенты, которым нравится продукт который они у нас купили, то мы можем при "впихивании" следующим на них ссылаться, а если нет, то что?! ... Мы будем говорить, что мы уже продали нескольким фирмам, но им дико не понравилось как оно работает. Так?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32119207
Фотография superbluesman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот работаю AccessXP+SQL2000

Использую тока хранимые процедуры, вся обработка данных только на сервере.
Из Access на SQL через ADO вызываю хранимые процедуры (функциями примерно той, что приведена первой),
а данные с сервера на Access притягиваю через DAO: в CurrentDB.QueryDefs подпихиваю имя хранимой процедуры с параметрами (см. пример 2-ой функции), иначе говоря в локальные Access-таблицы данные заливаю посредством исполнения PassTrouth-запроса одним махом (сначала пробовал через ADO, но перебор позаписьно кажной строки и занесение её в локальную Access-таблицу - дело долгое)
Не знаю, у меня есть одна юольшая форма, в которой штук 10-подформ+комбобоксы. Каждый клиент к серверу открывает 2-3 коннекта (2-под DAO, один - под ADO) Работает всё быстро.
Можно полученные данные с сервера в локальных таблицах вязать с другими какими прилинкованными источниками (так привыкли в конторе до меня работать), можно какую-то часть, непринципиальную, скажем подготовка таблиц для шахматки делать уже на клиенте. используя "местный" SQL
А в ADP - работа только с сервером и баста, никакой доп. свободы.
Будет время у меня, можно ADO-поковыряв набросать функции для асинхронной работы.
Уж ADO-то MS не забросит! Правда антаресно, как ADO.Net они подкрутят в Access???
Тема для меня актуальная, жду мнений, советов дельных, а то ж я не от хорошей жизни на Акцесс подсел, принудили... Хотя вижу, и тут жить можно.


Public Function execADO_Sql(pc_SqlCommand As String, pc_TypeCommand As String, ParamArray parr_Spprm() As Variant) As Variant

Dim ln_Low As Integer, ln_High As Integer, tmp_cmd As ADODB.Command, _
tmp_prm As ADODB.Parameter, ll_ExistRetParam As Boolean

If pc_TypeCommand = "SP" Then
ln_High = UBound(parr_Spprm())
If ln_High > 1 And (ln_High + 1) Mod 2 <> 0 Then
execADO_Sql = Null
MsgBox "Äëÿ õðàíèìîé ïðîöåäóðû ïàðàìåòðû äîëæíû ïåðåäàâàòüñÿ ïîïàðíî â âèäå <èìÿ ïàðàìåòðà>, <çíà÷åíèå>, <èìÿ ïàðàìåòðà>, <çíà÷åíèå>"
Exit Function
End If
End If
If OpenConnect = False Then
execADO_Sql = Null
Exit Function
End If

On Error GoTo ErrorHandler
Set tmp_cmd = New ADODB.Command
tmp_cmd.ActiveConnection = cnn
tmp_cmd.CommandText = pc_SqlCommand
tmp_cmd.CommandType = IIf(pc_TypeCommand = "SP", adCmdStoredProc, IIf(pc_TypeCommand = "Text", adCmdText, adCmdUnknown))
If pc_TypeCommand = "SP" Then
If ln_High > -1 Then
For ln_Low = 0 To ln_High Step 2
tmp_cmd.Parameters(IIf(Left(parr_Spprm(ln_Low), 1) = "@", "", "@") & parr_Spprm(ln_Low)) = parr_Spprm(ln_Low + 1)
Next ln_Low
End If
End If

tmp_cmd.Execute Options:=adExecuteNoRecords
If pc_TypeCommand = "SP" Then
For Each tmp_prm In tmp_cmd.Parameters
If tmp_prm.Direction = adParamOutput Or tmp_prm.Direction = adParamInputOutput Then
ll_ExistRetParam = True
execADO_Sql = tmp_prm.Value
Exit For
End If
Next tmp_prm
End If
If ll_ExistRetParam = False Then
execADO_Sql = 1
End If

ExitHere:
Set tmp_cmd = Nothing
Exit Function

ErrorHandler:
On Error GoTo 0
execADO_Sql = Null
Call about_error(Err, " SQL-ERR")
Resume ExitHere
End Function






Public Function Load_dataODBC(pc_Name_SP As String, pc_LocalTblName As String, pl_NoBindTbl As Boolean, ParamArray parr_Spprm() As Variant) As Long

Dim dbsCurrent As Database, ln_Low As Integer, ln_High As Integer, lc_NameTbl As String, _
qdfPassThrough As QueryDef, qdfLocal As QueryDef, lc_QuertySQLName As String, lc_QuertyLocalName As String, _
lu_Val As Variant, lu_InVal As Variant, lnPoz As Integer, lc_StrSql As String

ln_High = UBound(parr_Spprm())
If ln_High > 1 And (ln_High + 1) Mod 2 <> 0 Then
Load_dataODBC = -5
MsgBox "Äëÿ õðàíèìîé ïðîöåäóðû ïàðàìåòðû äîëæíû ïåðåäàâàòüñÿ ïîïàðíî â âèäå <èìÿ ïàðàìåòðà>, <çíà÷åíèå>, <èìÿ ïàðàìåòðà>, <çíà÷åíèå>"
Exit Function
End If
If OpenConnect = False Then
Load_dataODBC = -4
Exit Function
End If

Set dbsCurrent = CurrentDb()
lc_QuertySQLName = "tmp_Q"
lc_QuertyLocalName = "tmp_From"
lc_NameTbl = IIf(Len(Trim(pc_LocalTblName)) > 1, pc_LocalTblName, "tmp_" & frm.name)
lc_StrSql = pc_Name_SP

On Error GoTo ErrorHandler0
If ln_High > -1 Then
For ln_Low = 0 To ln_High Step 2
lu_InVal = parr_Spprm(ln_Low + 1)
If IsNull(lu_InVal) Then
lu_Val = "NULL"
ElseIf IsDate(lu_InVal) Then
lu_Val = "'" & DTOS(lu_InVal) & "'"
ElseIf VarType(lu_InVal) = vbDecimal Or VarType(lu_InVal) = vbDouble Or VarType(lu_InVal) = vbSingle Then
lu_Val = CStr(lu_InVal)
lnPoz = InStr(1, lu_Val, ",")
If lnPoz = 0 Then
lu_Val = "'" & lu_Val & "'"
Else
lu_Val = "'" & Left(lu_Val, lnPoz - 1) & "." & Mid(lu_Val, lnPoz + 1) & "'"
End If
Else
lu_Val = "'" & Trim(CStr(lu_InVal)) & "'"
End If
lc_StrSql = lc_StrSql & IIf(Left(parr_Spprm(ln_Low), 1) = "@", " ", " @") & parr_Spprm(ln_Low) _
& "= " & lu_Val & ","
Next ln_Low
End If
lc_StrSql = IIf(Right(lc_StrSql, 1) = ",", Left(lc_StrSql, Len(lc_StrSql) - 1), lc_StrSql)
'MsgBox lc_StrSql

On Error GoTo ErrorHandler1
Screen.MousePointer = 11
If CheckQuery(lc_QuertySQLName) Then
Set qdfPassThrough = dbsCurrent.QueryDefs(lc_QuertySQLName)
Else
Set qdfPassThrough = dbsCurrent.CreateQueryDef(lc_QuertySQLName)
End If
qdfPassThrough.Connect = pc_ODBCSqlConnection
qdfPassThrough.ReturnsRecords = True
If CheckQuery(lc_QuertyLocalName) Then
Set qdfLocal = dbsCurrent.QueryDefs(lc_QuertyLocalName)
Else
Set qdfLocal = dbsCurrent.CreateQueryDef(lc_QuertyLocalName)
End If


qdfPassThrough.SQL = lc_StrSql
qdfLocal.SQL = "SELECT * INTO " & lc_NameTbl & " FROM " & lc_QuertySQLName
If pl_NoBindTbl = False Then
frm.RecordSource = ""
End If
If CheckTable(lc_NameTbl) Then
dbsCurrent.TableDefs.Delete lc_NameTbl
dbsCurrent.TableDefs.Refresh
End If
On Error GoTo ErrorHandler2
dbsCurrent.QueryDefs(lc_QuertyLocalName).Execute

Load_dataODBC = 1
If pl_NoBindTbl = False Then
frm.RecordSource = lc_NameTbl
End If

ExitHere:
Screen.MousePointer = 0
Set dbsCurrent = Nothing
qdfPassThrough.Close
Set qdfPassThrough = Nothing
Set qdfLocal = Nothing
Exit Function
......
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32119517
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то я не совсем понимаю смысл заливания данных в локальные таблицы.
Ведь эти наборы данных во первых: получаются статичные, а во вторых при любых изменениях этих таблиц на сервере их что опять закачивать полностью? И где же тут в таком случае клиент-сервер?

А через ADO, насколько я знаю, можно закачать данные с сервера в рекордсет, а потом сбросить их (не по записям, а одним пакетом) куда угодно. Или в текущую БД или в рядом лежашую, или вообще просто в текстовый файл. Табличка с 5 тыс. записей грузится и сохраняется не дольше пары секунд.

И какая в ADP нужна свобода? Мы получаем тонкий клиент. Всё можно обрабатывать на сервере (может быть это конечно крайность, но на сервере то обработаеться быстрее). Или есть что-то, что нельзя сделать прямо на сервере?
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32119639
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧЁРТ ... я наверное не так понял то что написано в книге, но из АДОшного рекордсета данные можно сбросить только в файл. А для того чтобы запихать их в локальную таблицу нужно перенести "ручками" все записи из одного рекордсета в другой, но это работает тормознуто, даже при использовании пакетных обновлений UpdateBatch.
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32119677
Фотография superbluesman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Mind:

мне нужна та свобода, чтобы можно было старые dbf-таблицы, mdb-базы прилинковывать, кроме того, я могу просто посмотреть. чего прилетело мне на клиента и выполнить какую-то обработку, ту, что не обязательно крутить на сервере.

работа с Visual FoxPro+MS SQL - Там ведь тоже такой принцип, только Remote View - это временные курсоры (почитай временные таблички)

сбрасывая данные с сервера в локальные таблицы, я могу и отключиться от сервера и работать в офф-лайне, потом подключиться и выполнить синхронизацию. Если надо видеть свежие данные, то можно либо по нажатию кнопочки или по таймеру перезапрашивать данные, чтобы увидеть изменения других юзеров
в конце концов, в качестве источника формы я могу установить динамический ADO-recordSet и смотреть, чего там на сервере, но пока система реального времени мне не нужна. И потом, работая через Инет с базой, Вы ведь тожа получаете данные по перезапросу, ведь так??? А вот побороться за минимизацию количества получаемых записей с сервера - тут надо
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32119950
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я как-то уже писал...

Не надо перегонять строки из Recordset в локальные таблицы. Вместо этого можно создавать временную таблицу на SQL Server и её подлинковать к Access, после чего натравить на неё отчёт.

Либо можно постоянно держать и обновлять на SQL Server таблицы специально для хранения в них данных для отчётов и эти таблицы постоянно держать подлинковаными.

Ясное дело, для форм это не проходит, но (об этом я уже тоже писал), использование для ввода даных в базу форм, основанных на таблице, - это моветон на мой взгляд...
...
Рейтинг: 0 / 0
Будет ли жить такой проект? mdb + MS SQL Server
    #32128660
AndreiTsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня проект с такой архитектурой прекпасно работает. Пользователи подключаются к серверу в Торонто из Эдмонтона, Виннипега, Монреаля, Оттавы, Галифакса, и еще из каких то городов в Канаде. Лично проверял при примерно 30 юзерах, все работает. Формы есть достаточно тяжелые, но все они disconnected, а данные тащатся с сервака через ADO. Пришлось конечно кучу кода на серваке писать, но скорость получается неплохая. А а насчет прокупки скажу что покупают систему, и весьма неплохо.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Будет ли жить такой проект? mdb + MS SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]