Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Insert из excel в oracle / 7 сообщений из 7, страница 1 из 1
20.01.2014, 22:53
    #38532491
qwertysx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
Формучане, добрый вечер!

Возникла следующая проблема. В Excele макросом создаю запрос. Обычный insert into table.
Insert рабочий, ошибок нет. При запуске макроса происходит следующее. Макрос отрабатывает с ошибкой "Запрос не выполняется или не удается открыть таблицу базы данных". При это сам insert отрабатывает, то есть данные в таблице появляются.

Собственно, можно попробовать написать обработку ошибки, но хочется понять в чем проблема. Если кто сталкивался с подобным, поделитесь опытом.

Select-ы макрос выполняет, проблемы только с insert-ом. Права на таблицу у меня все есть.
...
Рейтинг: 0 / 0
21.01.2014, 09:03
    #38532686
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
open <> execSql
...
Рейтинг: 0 / 0
21.01.2014, 09:45
    #38532728
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
qwertysxЕсли кто сталкивался с подобным, поделитесь опытом.Раз оракл отрабатывает нормально, а ругается эксель, значит, дело в экселе. Если andreymx не угадал, давайте код макроса.
...
Рейтинг: 0 / 0
21.01.2014, 09:54
    #38532734
qwertysx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
Вот код макроса:

Код: 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.
Sub DWH(SHEET As String, query As String, bool As Boolean, rownum As Integer)
   
    Dim i As Long
    query = "INSERT INTO RU_KOSE.TASK_INFO_EXT(TASK_ID, IDOBJ) VALUES (18,63641852);"

   ' On Error GoTo ErrorHandler
    With Sheets(SHEET).QueryTables.Add( _
        connection:="OLEDB;Provider=OraOLEDB.Oracle.1;Password=RU_KOSE;Persist Security Info=True;User ID=RU_KOSE;Data Source=RSK", Destination:=Sheets(SHEET).Cells(rownum, 1))
        'provider = MSDAORA.1;user id=zhuk;password=Htfkbyr;Data Source=DWHRU", Destination:=Sheets("Query").Cells(i, 1))
        'conn, Destination:=sh.Cells(i, 1))
        'Sheets("Query").Cells(10, 1) = query
        
        .CommandText = query
        .Name = "Query1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .MaintainConnection = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=bool
'ErrorHandler:
            
    End With
   ' If i > 1 Then Sheets("Query").Rows(i).Delete shift:=xlUp
End Sub



Модератор: Тема перенесена из форума "Oracle".

Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
21.01.2014, 13:46
    #38533022
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
andreymx угадал - вы пытаетесь сделать select, то есть используете код, который ожидает от оракла рекордсет, а потом этот рекордсет распихивает по ячейкам.
Я последний раз программировал что-то подобное лет шесть назад, помню плохо, что надо делать. Там есть объект то ли Command, то ли ADORecordSet, а у того объекта есть метод Execute, вот его и надо использовать.
...
Рейтинг: 0 / 0
21.01.2014, 15:50
    #38533193
Insert из excel в oracle
qwertysxФормучане, добрый вечер!

Возникла следующая проблема. В Excele макросом создаю запрос. Обычный insert into table.
Insert рабочий, ошибок нет. При запуске макроса происходит следующее. Макрос отрабатывает с ошибкой "Запрос не выполняется или не удается открыть таблицу базы данных". При это сам insert отрабатывает, то есть данные в таблице появляются.

Собственно, можно попробовать написать обработку ошибки, но хочется понять в чем проблема. Если кто сталкивался с подобным, поделитесь опытом.

Select-ы макрос выполняет, проблемы только с insert-ом. Права на таблицу у меня все есть.
Создавай объект ADO Connection и выполняй инструкции insert update delete так:
Код: vbnet
1.
Connection.Execute MySQLText
...
Рейтинг: 0 / 0
21.01.2014, 21:59
    #38533748
qwertysx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Insert из excel в oracle
Всем спасибо! Проблема решена. Действительно, дело было в коннекте.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Insert из excel в oracle / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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