powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает импорт из OLAP
25 сообщений из 65, страница 2 из 3
Не работает импорт из OLAP
    #39298817
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, нормальных способов нет
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298819
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298826
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, нормальных способов нет
Получается, вместо подзапросов использовать промежуточные таблицы, чтобы потом можно было доработку и отладку делать? Если использовать промежуточные таблицы, то это влияет не только на размер файла, но и на производительность. Верно? А надстройки нету специальной?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298832
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
Мне вот интересно, что за случаи такие?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298841
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургferzmikk, нормальных способов нет
Получается, вместо подзапросов использовать промежуточные таблицы, чтобы потом можно было доработку и отладку делать? Если использовать промежуточные таблицы, то это влияет не только на размер файла, но и на производительность. Верно? А надстройки нету специальной? К чему все эти рассуждения? Для каждого конкретного случая есть своё решение. Иногда выгодно промежуточные данные выгружать в таблицы. Вложенные запросы можно хранить отдельно и использовать как таблицы. Можно всё что не запрещено. Про производительность и размер не понял. Всё зависти от рукожопости, а выше головы не прыгнешь...
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298842
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПанургferzmikk, мало того, будь готов, что Access будет править вложенные запросы сам и потом будет на свои же правки ругаться, вплоть до невозможности попасть в редактор в особо тяжёлых случаях.
Мне вот интересно, что за случаи такие?будут - узнаешь. Ничего страшного, работают же люди столько лет.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39298844
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Понял. Спасибо!
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299308
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk, у набора данных ADO ( Recordset ) метод Update использовать необязательно. При переходе на следующую запись для редактировавшейся записи апдейт произойдёт автоматически.
Но проблема возникает при добавлении последней записи. На выделенной строке пишет "Операция не допускается в данном контексте".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Test()
Dim РекордсетТаблицаAccess As Object
Set РекордсетТаблицаAccess = CreateObject("ADODB.Recordset")
РекордсетТаблицаAccess.LockType = 2
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection

For i = 1 To 5
РекордсетТаблицаAccess.AddNew
РекордсетТаблицаAccess.Fields("Города") = "Город " & i
'РекордсетТаблицаAccess.Update
Next i

РекордсетТаблицаAccess.Close
Set РекордсетТаблицаAccess = Nothing
End Sub


Как тут быть?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299311
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургИли использовать метод объекта Connection Execute и выполнить инструкцию SQL "DELETE * FROM [ИмяТвоейТаблицы];"

Вроде всё, может где и ошибся...
Похоже неправильно делаю
Код: vbnet
1.
2.
3.
4.
Dim РекордсетТаблицаAccess As Object
Set РекордсетТаблицаAccess = CreateObject("ADODB.Recordset")
РекордсетТаблицаAccess.LockType = 2
РекордсетТаблицаAccess.Open "Города", CurrentProject.Connection.Execute("Delete * from [Города]")
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39299354
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПохоже неправильно делаю
[/src]Неправильно конечно.
Почитай -> FAQ/MS Access/Как запускать запросы из VBA
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301005
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаю такой код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub ИмпортИзOLAP()

Dim Cn As Object
Dim РекордсетИмпорт As Object
Dim cmd As Object

Dim СтрокаПодключения As String, ТекстЗапроса As String

СтрокаПодключения = "Provider=MSOLAP.3;" & _
    "Integrated Security=SSPI;" & _
    "Persist Security Info=True;" & _
    "Initial Catalog=profit;" & _
    "Data Source=...................;" & _
    "MDX Compatibility=1;" & _
    "Safety Options=2;" & _
    "MDX Missing Member Mode=Error"
    
ТекстЗапроса = "SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit"

Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = СтрокаПодключения
Cn.Open

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 4 'adCmdStoredProc
cmd.CommandText = ТекстЗапроса
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute()

Set cmd = Nothing
РекордсетИмпорт.Close
Set РекордсетИмпорт = Nothing
Cn.Close
Set Cn = Nothing
End Sub

и на выделенной строке появляется ошибка "Query(1,6) Синтаксический анализатор: Неверный синтаксис "SELECT"."

А если написать так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
...
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 4 'adCmdStoredProc
'cmd.CommandText = ТекстЗапроса
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)
...

то пишет "Недопустимый синтаксис запросов. Ожидался допустимый запрос MDX или DAX"

Такой запрос нормально выгружается через Microsoft SQL Managment Studio.

Что тут не так?

Еще. Если смотреть в отладчик в объект Command, то в свойстве CommandText = "exec SELECT ...". В начале запроса стоит "exec ". Это нормально?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301022
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, глубоко не копал, но сразу замечание
Код: vbnet
1.
2.
cmd.CommandType = 4 'adCmdStoredProc ну где же тут сохранённая процедура?
cmd.CommandType =1 'adCmdText
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301028
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так не надо...ferzmikk
Код: vbnet
1.
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт.Open cmd
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301035
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk
Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Вот сейчас посмотрел, а чего ты пытаешься сделать? Ты пытаешься открыть Recordset и всунув в другой Recordset скопировать данные? Если да, то так ничего не получится. Таким образом можно по 1 записи в цикле присваивая данные от одного набора другому перекинуть данные.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301038
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk, РекордсетИмпорт это не сам Recordset , это ссылка на объект Recordset . Так даже ссылки на объекты передавать не получится.
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301044
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургferzmikk
Код: vbnet
1.
2.
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")
РекордсетИмпорт = cmd.Execute(ТекстЗапроса)

Вот сейчас посмотрел, а чего ты пытаешься сделать? Ты пытаешься открыть Recordset и всунув в другой Recordset скопировать данные? Если да, то так ничего не получится. Таким образом можно по 1 записи в цикле присваивая данные от одного набора другому перекинуть данные.
Собираюсь получить данные с параметрами
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301050
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вставить в Access-таблицу
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301062
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
РекордсетИмпорт.Open cmd
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301064
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: vbnet
1.
РекордсетИмпорт.Open cmd


ОК
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301083
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляю параметры
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
ТекстЗапроса = "SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit WHERE @ПараметрДата"

SelectDateMDX = "[Время].[Месяц].&[2016-07-01T00:00:00]"

Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = СтрокаПодключения
Cn.Open

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = Cn
cmd.CommandType = 1
cmd.CommandText = ТекстЗапроса
cmd.Parameters.Append cmd.CreateParameter("ПараметрДата", 129, 1, 1000, SelectDateMDX) ' ,adChar, adParamInput
Set РекордсетИмпорт = CreateObject("ADODB.Recordset")

РекордсетИмпорт.Open cmd
...

Пишет "Параметр задан неверно". Не те параметры в Parameter стоят?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301198
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу так
Код: vbnet
1.
cmd.Parameters.Append cmd.CreateParameter("@ПараметрДата", 129, 1, 1000, SelectDateMDX) 


тоже не работает
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301724
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не работает?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301783
а в студии
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ваш запрос с таким параметром работает?
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301826
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в студииваш запрос с таким параметром работает?

Если запускать на Microsoft SQL Managment Studio, то запрос
Код: plsql
1.
SELECT [Measures].[Отгрузки шт] on 0, [Города].[Город].[Город] on 1 from profit WHERE [Время].[Месяц].&[2016-07-01T00:00:00]

выполняется

А в модуле - нет
...
Рейтинг: 0 / 0
Не работает импорт из OLAP
    #39301891
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

а формат даты нормальный?
я в sql новичок, но где то в хелпах успел прочитать
для ОDBC - формат - YYYY-MM-DD
в студии все так и есть
а из акса как?
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает импорт из OLAP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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