Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
Ребят, поделитесь опытом
Есть Excel, у меня на компьютере
C:\test.xlsx

Есть таблица dbo.test на сервере MS SQL 2008

Есть ли возможность через VBA без OPENROWSET(BULK загрузить целиком файл, не по строчкам?
6 сен 18, 11:36    [21666697]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2908
Focha,

Список методов
6 сен 18, 12:46    [21666806]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
HandKot
Focha,

Список методов

я же написал
Focha


Есть ли возможность через VBA без OPENROWSET(BULK загрузить целиком файл, не по строчкам?
7 сен 18, 16:03    [21668337]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
big-duke
Member

Откуда:
Сообщений: 6685
Focha,

BULK INSERT Test FROM C:\test.xlsx WITH (FIRSTROW = ?, FIELDTERMINATOR = ?,ROWTERMINATOR =?, TABLOCK)

Как-то так, вместо вопроса поставить свои значения параметров.
11 сен 18, 11:40    [21670718]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
big-duke
Focha,

BULK INSERT Test FROM C:\test.xlsx WITH (FIRSTROW = ?, FIELDTERMINATOR = ?,ROWTERMINATOR =?, TABLOCK)

Как-то так, вместо вопроса поставить свои значения параметров.


к сожалению я не могу воспользоваться инструментами MSSQL
11 сен 18, 13:46    [21670919]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
big-duke
Member

Откуда:
Сообщений: 6685
Focha,
ADO DB вам можно использовать то ?
strSQL="BULK INSERT  ...."
With objCommand
        .ActiveConnection = objConnection
        .CommandType = adCmdText
        .CommandText = strSQL
        .Execute
    End With
13 сен 18, 09:39    [21673111]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
big-duke
Focha,
ADO DB вам можно использовать то ?
strSQL="BULK INSERT  ...."
With objCommand
        .ActiveConnection = objConnection
        .CommandType = adCmdText
        .CommandText = strSQL
        .Execute
    End With


вот и вернулся я к этому вопросу, я не очень понимаю вашу короткую конструкцию, мне надо с моего компьютера загрузить на сервер.
Private Sub test()
        Dim cn As Object
        Set cn = CreateObject("ADODB.Connection")
            cn.CommandTimeout = 600
            cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;server=***"
            cn.Open

sql = ""
sql = sql & Chr(10) & "BULK INSERT ad.temp.bulk_test from 'C:\test.csv'"
sql = sql & Chr(10) & "with("
sql = sql & Chr(10) & "         FIELDTERMINATOR = ';',"
sql = sql & Chr(10) & "         ROWTERMINATOR = ';'"
sql = sql & Chr(10) & "    )"
cn.execute sql     
End Sub


Пишет:
код ошибки операционной системы 3 системе не удается найти указанный путь
13 ноя 18, 11:52    [21732792]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4297.0 (X64) Nov 22 2013 17:24:14 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
13 ноя 18, 11:53    [21732795]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
stepochka
Member

Откуда:
Сообщений: 45
Focha
ошибки операционной системы 3 системе не удается найти указанный путь

Где файлик то лежит?
Из примера следует, что должен лежать на диске C: сервера, но наверное лежит на диске C: машины откуда запускаете скрипт
13 ноя 18, 15:21    [21733115]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
stepochka
Focha
ошибки операционной системы 3 системе не удается найти указанный путь

Где файлик то лежит?
Из примера следует, что должен лежать на диске C: сервера, но наверное лежит на диске C: машины откуда запускаете скрипт

у меня на компьютере, я знаю, что для сервера команда BULK INSERT файл должен быть на сервере, я тему создал как раз, в разделе Microsoft Office, так как реализация мне нужна через VBA.
Проблема в загрузке файла почти 1 мл строк на сервер, по строчкам это долго
14 ноя 18, 10:11    [21733824]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
stepochka
Member

Откуда:
Сообщений: 45
Focha
у меня на компьютере, я знаю, что для сервера команда BULK INSERT файл должен быть на сервере,

Файл должен быть там, откуда сервер сможет его забрать/обработать, на сеть файл положите

BULK INSERT Sales.Orders
FROM '\\SystemX\DiskZ\Sales\data\orders.dat';
14 ноя 18, 13:02    [21734082]     Ответить | Цитировать Сообщить модератору
 Re: VBA Excel загрузить на MSSQL  [new]
Focha
Member

Откуда: Москва
Сообщений: 369
stepochka
Focha
у меня на компьютере, я знаю, что для сервера команда BULK INSERT файл должен быть на сервере,

Файл должен быть там, откуда сервер сможет его забрать/обработать, на сеть файл положите

BULK INSERT Sales.Orders
FROM '\\SystemX\DiskZ\Sales\data\orders.dat';

вообщем я понял, без сервера большой объем данных загрузить нельзя в таблицу
14 ноя 18, 14:37    [21734209]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить