powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel->Oracle (запись через ODBC)
6 сообщений из 6, страница 1 из 1
Excel->Oracle (запись через ODBC)
    #34009807
Davido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите, пожалуйста понять в чем проблема.

Цепляюсь к базе Oracle из Excel через ODBC с целью чтения данных, все отрабатывает без сбоев. Соединяюсь с БД для апдейта, валится на ошибки ODBC (не понимаю почему, где-то слышала, что на запись MSовские драйверы не подходят, пояснит кто в теме).

Настройки соединения для чтения.
Код: plaintext
1.
2.
Set РабочаяОбласть = CreateWorkspace("", name_UID, name_PWD, dbUseODBC)
Set БазаДанных = РабочаяОбласть.OpenDatabase("", False, False, "ODBC;DSN=" & name_DSN)
Чтение.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set Запись = БазаДанных.OpenRecordset("EXP_DIMENSIONS", dbOpenDynaset)Запись.MoveFirst
i =  1 
While Not Запись.EOF
    If Запись.Fields( 2 ) = "0" Then
        ThisWorkbook.Sheets("Dim").Cells(i,  1 ) = Запись.Fields( 0 )
        ThisWorkbook.Sheets("Dim").Cells(i,  2 ) = Запись.Fields( 1 )
        ThisWorkbook.Sheets("Dim").Cells(i,  3 ) = Запись.Fields( 5 )
        i = i +  1 
    End If
    Запись.MoveNext
Wend
Настройки соединения для записи.
Код: plaintext
1.
Set wrkPbd = CreateWorkspace("", mUID, mPWD, dbUseODBC)    
Set dbsPbd = wrkPbd.OpenDatabase("", False, False, "ODBC;DSN=" & mDSN & ";Provider=OraOLEDB.Oracle.1;") ' пробовала и без указания Provider

Запись.
Код: plaintext
dbsPbd.Execute strSQL

переменная strSQL содержит следующие данные:
DELETE EXP_LedgerJournalTrans
WHERE
ParentRecId=
(SELECT CAST(RecNo AS Varchar(20)) FROM EXP_LedgerJournalTable
WHERE
SystemID='Данные за -' AND
IMPORTBATCH='' AND
Name='шаблон.xls');
DELETE EXP_LedgerJournalTable
WHERE
SystemID='Данные за -' AND
IMPORTBATCH='' AND
Name='шаблон.xls';
INSERT INTO EXP_LedgerJournalTable(RECNO, State,IMPORTBATCH,SystemID,ParentRecID,Name,Dimension) VALUES (925141038, 0,'','Данные за -','0','шаблон.xls','МРМ');
UPDATE EXP_LedgerJournalTable
SET ParentRecID=RecNo
WHERE ParentRecID='0';
INSERT INTO EXP_LedgerJournalTrans(RecNo,State,ParentRecId,TableRecNo,TransDate,AccountType,AccountNum,OffsetAccountType,OffsetAccount,AmountCurDebit,Txt,Dimension,Dimension2_,Dimension3_,Dimension4_,Dimension5_,Dimension6_,Dimension7_,Dimension8_,Dimension9_,amountcurcredit,CurrencyCode,ExchRate,BudgetOff,RContractCode,RContractAccount,bCD,TaxGroup,TaxItemGroup,TaxCode,Invoice,FactureExternalId_RU,CustAccount,VendAccount,PostingProfile)
VALUES (141038, 0,'0',2,'25.10.2005',1,'К000001',0,'01.20.00',111,'с 2004','МРМ','','','','','','','','',Null,'',0.0,0,'','',0,'','','','','','','','62.10.10');
UPDATE EXP_LedgerJournalTrans
SET TableRecNo=RecNo
WHERE ParentRecId='0';
UPDATE EXP_LedgerJournalTrans
SET ParentRecId=(SELECT CAST(RecNo AS Varchar(20)) from EXP_LedgerJournalTable
WHERE State=0 AND
SystemID='Данные за -' AND
IMPORTBATCH='' AND
Name='шаблон.xls')
WHERE ParentRecID='0';
...
Рейтинг: 0 / 0
Excel->Oracle (запись через ODBC)
    #34011174
Davido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я наверное не там эту тему запостила, мне надо было поместить ее в разделе Оракл?
...
Рейтинг: 0 / 0
Excel->Oracle (запись через ODBC)
    #34011212
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переспросить в оракловском форуме не помешает. Но если в качестве клиента используется Эксель, то стоит помнить что у Экселя не очень большая любовь к длинным строчкам. Попробуй сократить свою длинную команду до записи в одно-два-три поля, с минимумом полей в where. Если пройдут значит проблема действительно в длине команды.
...
Рейтинг: 0 / 0
Excel->Oracle (запись через ODBC)
    #34012079
Davido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не думаю что тут дело в Excel, этот код при коннекте к SQL нормально работал 3 года, а с переходом на Oracle возникли проблемы :(
...
Рейтинг: 0 / 0
Excel->Oracle (запись через ODBC)
    #34012228
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не уверен, но по-мойму дело в
Код: plaintext
"ODBC;DSN=" & mDSN & ";Provider=OraOLEDB.Oracle.1;"

посмотри
http://www.connectionstrings.com
там строки подключения
...
Рейтинг: 0 / 0
Excel->Oracle (запись через ODBC)
    #34013633
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Davidoя не думаю что тут дело в Excel, этот код при коннекте к SQL нормально работал 3 года, а с переходом на Oracle возникли проблемы :(А какие ошибки ODBC то?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel->Oracle (запись через ODBC)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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