Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Всем доброго дня!

Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
Apr 14 2006 01:12:25 Copyright (c) 1988-2005 Microsoft Corporation
Express Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

При импортирование из сервера в exel выдает ошибку:
Код:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="C:\Book1.xls";Extended properties="Excel 8.0;HDR=Yes"
')...лист1$
Ошибка:
The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" does not contain the table "лист1$".
The table either does not exist or the current user does not have permissions on that table.
Примечание:
Скрипт выполняется под правми sa; exel создан и у меня права на него админские;
Ad Hoc Distributed Queries активирован.

В чем еще может быть дело? Заранее благодарен.
24 окт 11, 06:40    [11486789]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
И второй вопрос как сформировать таблицу такого типа:
Екатерининбург
----------------
Фирма1 Адрес1
Фирма2 Адрес2
ФирмаN АдресN
Тюмень
------------
Фирма 3 Адрес3
ФтримаN АдресN
В наличие sql manager и базовые знания програмирования (C#, Delfi)
24 окт 11, 06:45    [11486794]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

а в файле есть такой лист? И у вас есть права на доступ к файлу? Можно еще попробовать взять имя листа в квадратные скобки.

Сформировать таблицу - на основе каких данных? Прочитайте пп. 4 и 6
24 окт 11, 10:01    [11487001]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Лист такой есть (oficсe 2007 rus), в скобки брал таже ошибка. Использую SQL server menegment studio.
Я админ права соотвественно (на всякий случай дал права на Все чтение и запись), хранится на локальном диске.


например у меня есть одна таблица в которой идут записи
Екатеринибург фирма1 адрес1
Екатеринибург фирма2 адрес2
Екатеринибург фирма3 адрес3
Тюмень фирма4 адрес4
....
Мне нужно представить в формате Exel Таблицу, но так что бы название города было сверху.=) вот так

но для начала надо разобраться с импортом.
24 окт 11, 10:35    [11487172]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
svovach
Лист такой есть (oficсe 2007 rus), в скобки брал таже ошибка.

Регистр имеет значение. И пробелы
Лучше всего для пробы дать листу точноизвестное вам имя
24 окт 11, 10:41    [11487208]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Обозвал лист abc

The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" does not contain the table "abc$".
The table either does not exist or the current user does not have permissions on that table.
24 окт 11, 10:52    [11487281]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
exec master..xp_cmdshell 'dir C:\Book1.xls'
24 окт 11, 10:56    [11487301]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

declare @t table (town varchar(100), f1 varchar(100), f2 varchar(100))
insert @t values
('Екатеринибург', 'фирма1', 'адрес1'),
('Екатеринибург', 'фирма2', 'адрес2'),
('Екатеринибург', 'фирма3', 'адрес3'),
('Тюмень', 'фирма4', 'адрес4')

select ISNULL(f1,town) f1, f2 from(
	select * from @t union all
	select distinct town, null, null from @t
)t
order by town,f1

select ISNULL(f1,town) f1, case grouping(f1) when 0 then max(f2) end f2 from @t
group by town, f1 with rollup
having GROUPING(town) = 0
order by town, f1
24 окт 11, 11:15    [11487413]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Т.е. необходимо перечислять все города??? у меня этих значений с пол сотни(((
А нет ли другого способа?


exec master..xp_cmdshell 'dir C:\Book1.xls'
Том не иммет метки
Фаил не найден.
24 окт 11, 11:46    [11487651]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
svovach
Т.е. необходимо перечислять все города??? у меня этих значений с пол сотни(((
А нет ли другого способа?

Че?????

svovach
exec master..xp_cmdshell 'dir C:\Book1.xls'
Том не иммет метки
Фаил не найден.

Так какие тогда вопросы-то?
24 окт 11, 11:50    [11487691]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Вопрос в том что есть то С:\ и есть в нем в корне Book1.xls!
24 окт 11, 11:55    [11487741]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
svovach
Вопрос в том что есть то С:\ и есть в нем в корне Book1.xls!

Значит он недоступен с правами, с которыми работает сервер.
24 окт 11, 11:59    [11487780]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

а, да, сервер и клиент у вас на одной машине или на разных? Если на разных - то на какой машине существует файл?
24 окт 11, 12:00    [11487790]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Сервер и клиент на одной машине, пока.
Доступ к файлу дал на "Все" (на всякий случай) чтение/запись, для диска С:\ "Все" чисто чтение и ничего.
24 окт 11, 12:02    [11487813]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
declare @t table (town varchar(100), f1 varchar(100), f2 varchar(100))
insert @t values
('Екатеринибург', 'фирма1', 'адрес1'),
('Екатеринибург', 'фирма2', 'адрес2'),
('Екатеринибург', 'фирма3', 'адрес3'),
('Тюмень', 'фирма4', 'адрес4')

select ISNULL(f1,town) f1, f2 from(
	select * from @t union all
	select distinct town, null, null from @t
)t
order by town,f1

select ISNULL(f1,town) f1, case grouping(f1) when 0 then max(f2) end f2 from @t
group by town, f1 with rollup
having GROUPING(town) = 0
order by town, f1
[/quot]


Ругается на первое же слово table, и не нужно указывать в квадратных скобках названия тадилцы и столбцов?
24 окт 11, 12:07    [11487863]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
svovach
Ругается на первое же слово table, и не нужно указывать в квадратных скобках названия тадилцы и столбцов?

Матом?
24 окт 11, 12:08    [11487870]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
iljy
svovach
Ругается на первое же слово table, и не нужно указывать в квадратных скобках названия тадилцы и столбцов?

Матом?

Incorrect syntax near the keyword 'table'.
24 окт 11, 12:10    [11487881]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
svovach
iljy
пропущено...

Матом?

Incorrect syntax near the keyword 'table'.

Чет вы врете. Я бы понял, еслибы он на values через запятую ругалался, все-таки 2005 у вас, не посмотрел я (кстати перепишите, либо несколько insert, либо insert ... select ... union all select). Но declare .. table он стопудово понимать должен.
24 окт 11, 12:14    [11487922]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Ладно, нет смысла играть в партизана=)

Таблица [pList]. Сначала [Company] потом перечисление кто в компани, и так на кажду компани.

declare @t table ([Company] varchar(100), Name varchar(100), MidName varchar(100))

insert [pList] select * union all select


select ISNULL([Name],[Company]) [Name], [MidName]
from(select * from @t union all
select distinct town, null, null from @t)t
order by [Company],[Name]

select ISNULL([Name],[Company]) [Name], case grouping([Name]) when 0 then max([MidName]) end [MidName] from @t
group by [Company], [Name] with rollup
having GROUPING([Company]) = 0
order by [Company], [Name]

Чувствую меня забанят за тупизм=(
24 окт 11, 12:25    [11488011]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

слушайте, вам бы учебник открыть... Вы хоть приблизительно разобрались, что и как мой скрипт делает? А ваш даже компилироваться не будет.
24 окт 11, 12:28    [11488031]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
iljy
svovach,

слушайте, вам бы учебник открыть... Вы хоть приблизительно разобрались, что и как мой скрипт делает? А ваш даже компилироваться не будет.


Да, это правда надо читать, но отчеты горят. Базовые знания по sql есть, но чтоб такие таблицы выводить... Если не сложно поравте где там что, и заодно с какой учебник вы имеете ввиду, по тому как изучить все равно надо. Заранее благодарен!
24 окт 11, 12:31    [11488055]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

интересно, как я поправлю, если неизвестна ни структура ваших таблиц, ничего? Я создал тестовую таблицу и на ее основе сделал пример, который надо под вас подогнать.

https://www.sql.ru/books/books.aspx?g=1&s=0
открывайте и ищите учебные курсы и книги для начинающих.
24 окт 11, 12:36    [11488092]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
SELECT [ID]
,[Name]
,[FirstName]
,[MidName]
,[Status]
,[WorkPhone]
,[HomePhone]
,[Company]
FROM [User]

связь с другими таблицами не важна, там я разберусь, мне привести эту таблицу в нужный мне вид;)
24 окт 11, 12:40    [11488126]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
Rudge
Member

Откуда:
Сообщений: 274
Чтоб не плодить новых тем.
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) Jul 9 2008 14:43:34 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition on Windows NT 6.0 <X86> (Build 6002: Service Pack 2)

Ad Hoc 1.

Нужно импортировать excel в таблицу ms sql.

Скрипт:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\excel1.xls;','SELECT * FROM [Sheet1$]')

Выдаёт:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Неопознанная ошибка".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

Excel 2003. Аутентификация windows админ.

exec master..xp_cmdshell 'dir C:\excel1.xls' :

13.10.2011 10:29 13 824 excel1.xls

Т.е. файл видит.
24 окт 11, 12:46    [11488181]     Ответить | Цитировать Сообщить модератору
 Re: Импорт Exel и формирование таблицы  [new]
iljy
Member

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

ну замените в запросах @t на User, имена полей подставьте какие вам нужны. Потом выберите запрос, который работает быстрее.
24 окт 11, 12:50    [11488231]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить