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

Откуда:
Сообщений: 18
кто знает подскажите в чем проблема


выполняется:
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=d:\test.xls;Extended Properties=Excel 4.0')...[test$] select rownum,type,resident,counter from #t,


где rownum=5, type='ЧП', resident=0, counter=59
последовательность перечисления полей в запросе и excel'е одинаковая


результат в excel-файле получается

0 59 ЧП 5


должно быть
5 ЧП 0 59

почему поля меняются местами? как решить это?
13 авг 09, 17:01    [7535049]     Ответить | Цитировать Сообщить модератору
 Re: OPENDATASOURCE путает поля  [new]
Glory
Member

Откуда:
Сообщений: 104760
А в каком порядке возвращает столбцы SELECT * FROM OPENDATASOURCE ?
13 авг 09, 17:05    [7535080]     Ответить | Цитировать Сообщить модератору
 Re: OPENDATASOURCE путает поля  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
LolaS
кто знает подскажите в чем проблема


выполняется:
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=d:\test.xls;Extended Properties=Excel 4.0')...[test$] select rownum,type,resident,counter from #t,


где rownum=5, type='ЧП', resident=0, counter=59
последовательность перечисления полей в запросе и excel'е одинаковая


результат в excel-файле получается

0 59 ЧП 5


должно быть
5 ЧП 0 59

почему поля меняются местами? как решить это?

попробуйте явно указывать порядок столбцов для вставки..
13 авг 09, 17:06    [7535085]     Ответить | Цитировать Сообщить модератору
 Re: OPENDATASOURCE путает поля  [new]
LolaS
Member

Откуда:
Сообщений: 18
Алексей2003
LolaS
кто знает подскажите в чем проблема


выполняется:
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=d:\test.xls;Extended Properties=Excel 4.0')...[test$] select rownum,type,resident,counter from #t,


где rownum=5, type='ЧП', resident=0, counter=59
последовательность перечисления полей в запросе и excel'е одинаковая


результат в excel-файле получается

0 59 ЧП 5


должно быть
5 ЧП 0 59

почему поля меняются местами? как решить это?

попробуйте явно указывать порядок столбцов для вставки..






ну я явно и указываю
select rownum,type,resident,counter from #t



или вы что-то другое имеете ввиду?
13 авг 09, 17:26    [7535232]     Ответить | Цитировать Сообщить модератору
 Re: OPENDATASOURCE путает поля  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
INSERT INTO tablename (field1,field2...)
select ...
13 авг 09, 17:27    [7535243]     Ответить | Цитировать Сообщить модератору
 Re: OPENDATASOURCE путает поля  [new]
LolaS
Member

Откуда:
Сообщений: 18
Glory
А в каком порядке возвращает столбцы SELECT * FROM OPENDATASOURCE ?




select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=d:\test.xls;Extended Properties=Excel 4.0')...[test$]

возвращает ошибку
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error. The provider did not give any information about the error.
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: The provider did not give any information about the error.].

Сообщение было отредактировано: 13 авг 09, 17:29
13 авг 09, 17:27    [7535247]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить