powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как залить csv на SQL Server через adp или mdb
12 сообщений из 12, страница 1 из 1
Как залить csv на SQL Server через adp или mdb
    #32872291
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется текстовой csv-файл, выбираемый пользователем клиентского Access, как его залить в таблицу из tempdb? Естественно без использования bcp =)
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872341
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Залить в блоб поле или в табличку по её полям?
В первом случае можно через adodb.stream, во втором - DoCmd.TransferSpreadsheet (это к xls файлам - csv не пробовал таким макаром) - создаст свою табличку, потом из неё импорт.

А чем bcp не угодил?:)
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872385
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто не горю желанием бегать и устанавливать его (bcp). Хочу ограничиться MDAC'ом. Буду пробовать, спасибо
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872483
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так можно сделать хп на сервере и в качестве параметра передавать ей имя файла - вот и всё. Зачем на клиенте это ставить?
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872542
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это мысль! Скорее всего так и сделаю, надо будет только имена использовать в UNC формате, по идее должно работать, надо будет только с правами доступа SQL Server к файлу разобраться.

Кстати, чтобы обработать текстовой файл можно использовать DoCmd.TransferText

Еще раз спасибо
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872662
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не за что.
С правами проблем быть не должно:)
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872762
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у учетки под которой стартует SQL сервер права админа домена
то никаких проблемм не будет просто юзаеш сетевой путь через C$

А вот с TransferSpreadsheet проблемм хапнеш
(пришлось недавно делать импорт из Excel
у юзера который конектился с машины из другого домена)

для начала tempdb не проканает.
Во первых потому что тогда юзер должен быть членом dbwriter
во вторых (и главных) потому что эта падла отдельный конекшн открывает
и сам понимаеш чаво будет с твоей табличкой када
TransferSpreadsheet закончит и конект закроет (причем не всегда)

Пришлось делать TransferSpreadsheet в MDB и потом уже из него сливать запросом на сервак.
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872818
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Latuk
Да, делали такое - ну у таблички будет владельцем пользователь, который выполняет данную операцию - у нас отслеживалось - правда в этой же сети...
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872864
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемма ежели временную таблицу делать
TransferSpreadsheet ее прекрасно создает
но делает это через отдельный конекшн
даже если сделать ## то после конекшн часто успевает закрытся
и соотв. табличка дропается прежде чем успеваеш воспользоватся ее содержимым.
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872958
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас посмотрел на код - всё нормально.
Код: plaintext
1.
2.
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "RateTable_XLS", Me.Path_An, True
Forms![Import_XLS]![Zone_miss_XLS].Form.RecordSource = ""
Forms![Import_XLS]![Zone_miss_SQL].Form.RecordSource = ""

Далее с этой табличкой ещё кучу всего делаем, а только потом данные вливаем туда, куда надо - всё в норме - никуда табличка не исчезает и по сей день всё работает. Но это в одной сети при виндовс аутентификации (последнее, впрочем, неважно)...
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872962
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms![Import_XLS]![Zone_miss_XLS].Form.RecordSource = ""
Тут просто селекты не стал приводить полностью. Селекты на основе этой таблички.
...
Рейтинг: 0 / 0
Как залить csv на SQL Server через adp или mdb
    #32872979
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Latuk
Да, такого мне не надо
Пока остановился на варианте серверной хп, что-то типа

CREATE PROCEDURE BulkInsProc
@path nvarchar(255)
AS
BEGIN
-- Объявляем переменную, где будет храниться строка динамического SQL
DECLARE @SQL nvarchar(1000)
-- Присваиваем ей строку операции вставки
SET @SQL = 'BULK INSERT tempdb.dbo.PU_pack01
FROM '''+ @path +
' ''WITH
( FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
FIRSTROW = 2,
CODEPAGE = ''RAW'')'
-- Выполняем операцию вставки
EXEC(@SQL)
END

GO
EXECUTE BulkInsProc '\\ws109\TMP\new\_PU174505N23.f1'
SELECT * FROM tempdb.dbo.PU_pack01
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как залить csv на SQL Server через adp или mdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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