|
|
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Имеется текстовой csv-файл, выбираемый пользователем клиентского Access, как его залить в таблицу из tempdb? Естественно без использования bcp =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:38:27 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Залить в блоб поле или в табличку по её полям? В первом случае можно через adodb.stream, во втором - DoCmd.TransferSpreadsheet (это к xls файлам - csv не пробовал таким макаром) - создаст свою табличку, потом из неё импорт. А чем bcp не угодил?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:53:21 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Просто не горю желанием бегать и устанавливать его (bcp). Хочу ограничиться MDAC'ом. Буду пробовать, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:10:07 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Так можно сделать хп на сервере и в качестве параметра передавать ей имя файла - вот и всё. Зачем на клиенте это ставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:46:22 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
А это мысль! Скорее всего так и сделаю, надо будет только имена использовать в UNC формате, по идее должно работать, надо будет только с правами доступа SQL Server к файлу разобраться. Кстати, чтобы обработать текстовой файл можно использовать DoCmd.TransferText Еще раз спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 15:01:00 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Да не за что. С правами проблем быть не должно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 15:31:12 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Если у учетки под которой стартует SQL сервер права админа домена то никаких проблемм не будет просто юзаеш сетевой путь через C$ А вот с TransferSpreadsheet проблемм хапнеш (пришлось недавно делать импорт из Excel у юзера который конектился с машины из другого домена) для начала tempdb не проканает. Во первых потому что тогда юзер должен быть членом dbwriter во вторых (и главных) потому что эта падла отдельный конекшн открывает и сам понимаеш чаво будет с твоей табличкой када TransferSpreadsheet закончит и конект закроет (причем не всегда) Пришлось делать TransferSpreadsheet в MDB и потом уже из него сливать запросом на сервак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:04:27 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Latuk Да, делали такое - ну у таблички будет владельцем пользователь, который выполняет данную операцию - у нас отслеживалось - правда в этой же сети... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:19:49 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Проблемма ежели временную таблицу делать TransferSpreadsheet ее прекрасно создает но делает это через отдельный конекшн даже если сделать ## то после конекшн часто успевает закрытся и соотв. табличка дропается прежде чем успеваеш воспользоватся ее содержимым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:30:52 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Сейчас посмотрел на код - всё нормально. Код: plaintext 1. 2. Далее с этой табличкой ещё кучу всего делаем, а только потом данные вливаем туда, куда надо - всё в норме - никуда табличка не исчезает и по сей день всё работает. Но это в одной сети при виндовс аутентификации (последнее, впрочем, неважно)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:53:43 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
Forms![Import_XLS]![Zone_miss_XLS].Form.RecordSource = "" Тут просто селекты не стал приводить полностью. Селекты на основе этой таблички. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 16:54:40 |
|
||
|
Как залить csv на SQL Server через adp или mdb
|
|||
|---|---|---|---|
|
#18+
>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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 17:02:56 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32872291&tid=1669198]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 345ms |

| 0 / 0 |
