Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Уважаемый МОДЕРАТОР! Не перебрасывай пожалуйста тему в ACCESS, дай попытать счастье здесь, вопросы только про внутренности SQK и его взаимодействие, на ACCESS мне не помогли.

Столкнулся с необходимостью перехода на клиент-серверную технологию. База (таблицы, как основные так и временные уже переведены в SQL 2008 R2 rus) элементы управления (формы, расчеты, вообще весь алгоритм работы программы) пока остались на ACCESS 2010 x64, все работает. Пытался перевести логику работы программы (т.е. все действия, расчеты, построения временных таблиц, получение выборки данных по условиям отбора, формирование отчетных данных и прочее) в SQL пока ничего не получилось. Точнее не получается осознать механизм работы и взаимодействия Access и SQL. Наибольшая проблема с передачей параметров выборки данных из Access в SQL. Приношу самые искренние извинения за стиль изложения моей проблемы и за то что я не использую программирование VBA, работаю исключительно через построителей запросов, отчетов и т.д. Прошу помощи (консультирование), может кто-то поделится опытом работ. Заранее всем признателен. Alex999kon
11 ноя 11, 11:45    [11580316]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
Glory
Member

Откуда:
Сообщений: 104751
alex999kon
Наибольшая проблема с передачей параметров выборки данных из Access в SQL.

И как эту проблему решит MSSQL ?

alex999kon
Точнее не получается осознать механизм работы и взаимодействия Access и SQL.

Читать документацию по Access до осознания ?

alex999kon
вопросы только про внутренности SQK

Пока не видно ни одного вопроса по MSSQL
11 ноя 11, 11:48    [11580341]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
alex999kon
Наибольшая проблема с передачей параметров выборки данных из Access в SQL.


http://hiprog.com/index.php?option=com_content&task=view&id=370&Itemid=35

9312531
11 ноя 11, 12:00    [11580459]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
petsa
Member

Откуда:
Сообщений: 1708
Пока у Вас на SQL-сервере только одни таблицы, вряд-ли Вы перенесете туда логику работы, потому-что она реализуется в сиквеле, в основном, при помощи хранимых процедур. А чтобы их вызывать на исполнение, Вам таки придется пописать VBA-код (ну и создать их предварительно).
11 ноя 11, 12:25    [11580695]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Спасибо. На сегодняшний день не было возможности освоить SQL тем более чтоб писать на VBA. Но предыдущий опыт работы на Access дает возможность работы только через построитель выражений, тем более что пробовал писать в Access подключенному к SQL и представления и функции, даже хранимые процедуры. Видимо из-за отсутствия опыта программирования VBA не знаю как в Access дать команду на исполнение хранимой процедуры реально расположенной на SQL. На сегодняшний день в программе Access активно использованы макросы (перечисление последовательно исполняемых действий - запросов на запись данных, отобранных по определенным показателям, с последующим отображением в отчетах или на экране ), как бы все это плавно переместить из Access в SQL не представляю себе.
11 ноя 11, 12:47    [11580870]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
Glory
Member

Откуда:
Сообщений: 104751
alex999kon
Видимо из-за отсутствия опыта программирования VBA не знаю как в Access дать команду на исполнение хранимой процедуры реально расположенной на SQL. На сегодняшний день в программе Access активно использованы макросы (перечисление последовательно исполняемых действий - запросов на запись данных, отобранных по определенным показателям, с последующим отображением в отчетах или на экране ), как бы все это плавно переместить из Access в SQL не представляю себе.

Если не будет вопросов по MSSQL, то тема будет закрыта
11 ноя 11, 12:48    [11580891]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
alex999kon
Точнее не получается осознать механизм работы и взаимодействия Access и SQL.
А они разные бывают:
- самостоятельная база Access (.mdb) может обмениваться данными с сервером, может хранить и обрабатывать их локально;
- проект Access (.adp) без SQL Server-а функционировать не может: все данные (таблицы), представления и ХП (запросы) живут в соответствующей БД на сервере.
В проекте живут формы, отчеты и модули VBA.
alex999kon
Видимо из-за отсутствия опыта программирования VBA не знаю как в Access дать команду на исполнение хранимой процедуры реально расположенной на SQL.
Вы ссылки тут смотрели?
alex999kon
На сегодняшний день в программе Access активно использованы макросы (перечисление последовательно исполняемых действий - запросов на запись данных, отобранных по определенным показателям, с последующим отображением в отчетах или на экране ), как бы все это плавно переместить из Access в SQL не представляю себе.
Придется осваивать T-SQL, переосмыслять и реализовывать это хозяйство в виде ХП.
Или тупо переносить "запросы" в БД сиквела в виде простых хранимок и, таки, писать код на VBA, который будет их дергать в нужном порядке, подставляя параметры.
Можно и совместить эти подходы...
11 ноя 11, 13:16    [11581163]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
aleks2
Guest
baracs
Или тупо переносить "запросы" в БД сиквела в виде простых хранимок и, таки, писать код на VBA, который будет их дергать в нужном порядке, подставляя параметры.


1. Ну чо уж так безграмотно работать. На VBA зря писать..
2. Я могу сказать только про .ADP. В ём труженики Microsoft-a здорово подсуетились.
3. Самую большую проблему при переходе .MDB->.ADP вызывает вопрос передачи параметров с формы в источник данных (запрос). Классические программеры Access-а испорчены конструктором запросов и прямым обращением в запросах к данным контролов формы.
4. Ни нада пичалиться. Microsoft постоянно думает о чайниках. Испытания кнопки "Сделать фсе, как я хачу" уже близки к стадии альфа-тестирования.
5. В Access встроен механизм автоматического сопоставления параметров источника_данных_формы_SQL-ПРОЦЕДУРЫ и содержимого контролов формы. Если вы создадите процедуру
CREATE PROCEDURE Test(@Parameter as int)
as
select  * FROM aSomeTable T WHETE T.Something=@Parameter
RETURN 0
и назначите ее источником данных формы, ТО ДОСТАТОЧНО РАЗМЕСТИТЬ НА ФОРМЕ управляющий элемент с именем Parameter и его значение будет использовано при запросе данных как аргумент процедуры. Для вложенной формы управляющий элемент с именем Parameter будет искаться на родительской.
11 ноя 11, 14:17    [11581859]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Огромнейшее спасибо за участие! Помогло! но еще не пробовал. Особенно заценил юмор, спасибо, давайте продолжим, действительно нужна помощь на уровне понимания (за меня работать не прошу, а вот за подсказки и наводки ОГРОМНЕЙШЕЕ СПАСИБО).

Уважаемый модератор дай еще немного времени на счастье.....
11 ноя 11, 14:38    [11582082]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
aleks2
В Access встроен механизм автоматического сопоставления параметров источника_данных_формы_SQL-ПРОЦЕДУРЫ и содержимого контролов формы. Если вы создадите процедуру
CREATE PROCEDURE Test(@Parameter as int)
as
select  * FROM aSomeTable T WHETE T.Something=@Parameter
RETURN 0
и назначите ее источником данных формы, ТО ДОСТАТОЧНО РАЗМЕСТИТЬ НА ФОРМЕ управляющий элемент с именем Parameter и его значение будет использовано при запросе данных как аргумент процедуры. Для вложенной формы управляющий элемент с именем Parameter будет искаться на родительской.
Только у меня всплыла в памяти фраза: "Футбол на минном поле."?
11 ноя 11, 14:46    [11582151]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Братья! Поделитесь опытом решения подобных задач на уровне "а я вот так это сделал", поймите меня правильно, голову сломал, а ничего толком не получается. Правда при размещении всех таблиц на SQL а Access-запросов в Access действительно все работает, но хотелось бы вытащить алгоритмическую часть в SQL, а менюшки и управление оставить в ACCESS, просто так привыкли пользователи, переход например на Delphi очень проблематичен из-за пользователей, да и времени вагон убить на это придется, хотелось малой кровью. Еще раз огромное спасибо всем за участие, если можно то давайте продолжим....
11 ноя 11, 14:56    [11582264]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
И еще, не знаю насколько я прав, но мне видится роль SQL как место хранения и обработки данных, а вот откуда обычно (ну или чаще всего, или просто а как у Вас?) осуществляется управление всей логикой работы и управление данными, ведь не из самого же SQL. Поделитесь пожалуйста опытом, хотя бы на уровне простого житейского рассказа (коротенечко...)
11 ноя 11, 15:01    [11582314]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
alex999kon
Поделитесь опытом решения подобных задач на уровне "а я вот так это сделал"
Сферических коней в вакууме тут мало кто делал.
alex999kon
голову сломал, а ничего толком не получается.
Давайте поконкретнее: что именно у вас не получается сделать базе на SQL Server?
11 ноя 11, 15:18    [11582479]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
Glory
Member

Откуда:
Сообщений: 104751
alex999kon
но мне видится роль SQL как место хранения и обработки данных, а вот откуда обычно (ну или чаще всего, или просто а как у Вас?) осуществляется управление всей логикой работы и управление данными, ведь не из самого же SQL.

Концепции тонкого и толстого клиентов существуют много лет
И у обеих есть множество удачных и неудачных реализаций
11 ноя 11, 15:21    [11582509]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
aleks2
Guest
baracs
Только у меня всплыла в памяти фраза: "Футбол на минном поле."?

Канешно, тока у тебя.
У фсех остальных процедуры чо попало не исполняют.
11 ноя 11, 15:27    [11582580]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Что не получается! Перевод базы с mdb (в настоящее время использую Access 2010 x64, там .accdb) прошел хорошо, пришлось несколько исправить связи таблиц, некорректно переход через мастера, сделал Link программы на Access к SQL 2008 R2 rus через ODBC (все правильно сделал), и даже все заработало! Но хотелось бы перевести весь алгоритм (вычисления, выбор данных и все все прочее) на сторону SQL, при управлении в Access. И тут просто не хватает головы как это сделать, не нашел ни одной толковой статьи на эту тему (может плохо искал или не там!) но сделать все по учебникам не получилось. Вот и обращаюсь к Форуму для поиска хоть какого-то работающего решения проблемы.

Пытался даже создавать хранимые процедуры и функции из Access в уже созданной SQL базе, не получается, самое главное не знаю как осуществлять запуск например набора записывающих ХП (по моему, т.е. по аксессовски - запрос на запись), так не знаю как его запустить из оболочки Акса, вобщем все мои попытки оказались неуспешны.....

Самое обидное что таблицы передал нормально и весь алгоритм (запросы, макросы и все прочее) Акса работает, а вот передача в SQL вычислений ну хоть стреляйся не получается, видать не понимаю логику взаимодействия (наверное и самого действия) SQL!
11 ноя 11, 15:36    [11582679]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
alex999kon,

для Access 2003 на ADP работало, несколько полезных функций
Public Function cnn() As Connection
  On Error GoTo ErrCNN
  If CurrentProject.ProjectType = acMDB Then
      Set cnn = CodeProject.Connection
  Else
      Set cnn = CurrentProject.Connection
  End If
    Exit Function
ErrCNN:
  On Error Resume Next
  If Err = 0 Then
    MsgBox "Ошибка доступа. Возможно из-за проблем со связью.", vbCritical
    DoCmd.Quit
  End If
End Function
Public Function fDate(Дата As Date) As String
  fDate = "'" & Format(Дата, "yyyymmdd") & "'"
End Function

Примеры:
Private Sub cboFltOn(Ctrl As Control)
  Ctrl.RowSource = "exec dbo.NameProcedureSQL_p '" & Ctrl.Name & "', " & strParam
End Sub

Public Function strParam() As String
   strParam = fDate(Me.Parent.НачальнаяДата) & "," & fDate(Me.Parent.КонечнаяДата) & "," & _
              IIf(IsNull(cboДата), "NULL", fDate(Nz(cboДата))) & ", " & _
              Nz(cboПолеСФормы1, "NULL") & ", " & _
              Nz(cboПолеСФормы2, "NULL") & ", " & _
              Nz(cboПолеСФормы3, "NULL") & ", " & _
              Nz(cboПолеСФормы4, "NULL") & ", " & _
              Nz(cboПолеСФормы5, "NULL") & ", " & _
              Nz(cboПолеСФормы6, "NULL") & ", " & _
              Nz(cboПолеСФормы7, "NULL") & ", " & _
              Nz(cboПолеСФормы8_id, "NULL") & ", " & _
              Nz(cboПолеСФормы9_id, "NULL")
End Function

Private Sub Report_Open(Cancel As Integer)
  Me.RecordSource = "exec dbo.rpt_Процедура_p " & Me.Parent.strParam
End Sub

If MsgBox("Вы действительно хотите удалить запись с материалом!", vbExclamation + vbYesNo, "Внимание") = vbYes Then
    Me.Dirty = False
    DoCmd.RunSQL ("DELETE FROM dbo.doc_Таблица WHERE id=" & Me.lngID)
    Me.Requery
  End If

Dim rs As Recordset
      Set rs = cnn.Execute("dbo.rpt_Процедура_p " & strParam)
      If rs.RecordCount > 0 Then
        ОстатокBeg_RUB = rs.Collect("Остаток_RUB")
        ОстатокBeg_USD = rs.Collect("Остаток_USD")
      End If
      rs.Close
      Set rs = Nothing

 Me.Поле_id.RowSource = "exec dbo.Процедура_p 10, " & lngKod & ",0, " & lngKod  

Me.lngID - это поле на форме
Me.Поле_id - это поле со списком
Me.Parent.НачальнаяДата - это поле НачальнаяДата с предыдущей формы, поэтому Parent.
11 ноя 11, 22:39    [11585535]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
qwerty112
Guest
Уважаемые "любители T-SQL", конечно же ничего не поняли из пожеланий автора

10146162
alex999kon
БУДЕТ РЕЗУЛЬТАТ БЕЗ VBA и Т-SQL
12 ноя 11, 02:15    [11586298]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
alex999kon
Что не получается! Перевод базы с mdb (в настоящее время использую Access 2010 x64, там .accdb) прошел хорошо, пришлось несколько исправить связи таблиц, некорректно переход через мастера, сделал Link программы на Access к SQL 2008 R2 rus через ODBC (все правильно сделал), и даже все заработало!
Хреново вы сделали. Переводить - на АДЕПЕ!
12 ноя 11, 09:36    [11586421]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4254
Спасибо за участие! Не совсем понятно, но будем грысть науку, опять же Есть некоторые проблемы с переходом на АСКС2010 64, там многое что по другому.

При этом хочется спросить как из внешнего (по отношению к SQL) приложения производить запуск последовательных действий, имеется ввиду аналогия макросы АКСА (а там внутри определенный набор исполнения запросов и вызов других макроосов), как они должны оформляться в самом SQL. Еще раз огромное спасибо Alex999kon
14 ноя 11, 10:33    [11591349]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Все команды одного коннекта на сервере выполняются всегда последовательно
14 ноя 11, 11:15    [11591616]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с пониманием логики работы SQL(база,вычисления) в паре с Access2010(меню,отчет)  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
alex999kon
Не совсем понятно, но будем грысть науку...

При этом хочется спросить как из внешнего (по отношению к SQL) приложения производить запуск последовательных действий, имеется ввиду аналогия макросы АКСА (а там внутри определенный набор исполнения запросов и вызов других макроосов), как они должны оформляться в самом SQL.
Вот.
14 ноя 11, 11:19    [11591640]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить