Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
MS SQL 2000
Пытаюсь подключить Visual FoxPro базу

создаю View в EM
------
SELECT *
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft Visual FoxPro Driver}; SourceDB=D:\Users\Aleks\A06\A06.DBC;SourceType=DBC;',
'SELECT * FROM ambree') ambree
-------
оно показывает в дизайнере таблицу со всеми полями
--------
пытаюсь сохранить View -оно ругается:

ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin distributed transaction.
[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB provider return message: [Microsoft][ODBC Visual FoxPro Driver]Driver not capable]
[Microsoft][ODBC SQL Server Driver][SQL Server] OLE DB error trace [OLE/DB provider 'MSDASQL' ITransactionJoiJoinTransaction returned 0x8004d00a]
----
Может кто подскажет: чего ему надобно?
8 май 04, 07:07    [668907]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
Нешто нету знатоков?
11 май 04, 06:23    [670424]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/forum/actualtopics.aspx?search=OPENROWSET+%E4%EB%FF+Visual+FoxPro&bid=1
11 май 04, 07:07    [670438]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Палестинец
Member

Откуда:
Сообщений: 8314
А по-мойму и неполучится..

Заместо view надо создать linked сервер и через openquery с ним работать..
11 май 04, 07:55    [670466]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
Хи-хи,... это я читаль... и плакаль...
Но решения то нема?

В QA работает, т.е. нужно отключить транзакции и аля-улю, НО

Попытка (в SP)
------
while @@TRANCOUNT>0
commit
-------
ни к чему (хорошему) не приводит.
11 май 04, 10:49    [670720]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
Легко догадаться, что linked server/openquery абсолютно параллельно...
т.е. ведут к тому же результату.
11 май 04, 10:51    [670725]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Палестинец
Member

Откуда:
Сообщений: 8314
понятно - но зачем view тогда ??
11 май 04, 10:55    [670733]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
SP/UDF я тоже пробовал - один бис...

1) Суть проблем - VFP не поддерживает транзакции (по крайней мере так, как хочется MS SQL/MS Access), т.е. надо отключить транзакции совсем.

2) QA как то это делает - там запрос проходит.
------------------
Вопрос: как QA этого добивается?
11 май 04, 10:59    [670754]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Палестинец
Member

Откуда:
Сообщений: 8314
имхо он никак и не добивается...

если написать
begin tran
SELECT *
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft Visual FoxPro Driver}; SourceDB=D:\Users\Aleks\A06\A06.DBC;SourceType=DBC;', 
'SELECT * FROM ambree') ambree
commit tran 
разве будет работать??
11 май 04, 11:40    [670870]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Александр Третьяков
Member

Откуда: Украина, г. Тернополь
Сообщений: 549
все работает, конструкциями типа пользуюсь уже два года

select * into #tmptable from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB=d:\Repl\In;SourceType=DBF','select * from Tovar')
11 май 04, 13:50    [671224]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Палестинец
Member

Откуда:
Сообщений: 8314
все работает

и даже если написать это в явной транзакции?
хммм. у меня нет :(
11 май 04, 13:52    [671231]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
Еще раз: работает в QA, НЕ работает в EM и Access...

В явных танзакциях - ес-но НЕ работает.

У тов. Александр Третьяков обход через временные таблицы (можно попробовать, но не годится для обновления VFP). И он не указывает откуда он выполняет запрос.
11 май 04, 16:28    [671800]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Glory
Member

Откуда:
Сообщений: 104760
Еще раз: работает в QA, НЕ работает в EM и Access...
А вы посмотрите в SQLProfiler как это делают EM и Access и как QA.
11 май 04, 16:52    [671893]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Палестинец
Member

Откуда:
Сообщений: 8314
А кстати я ошибся -
у меня работает openrowset - строка такая же только указываю dbf..
и в транзакции работает и вьюха создается create view as

msdtc запущен..
11 май 04, 17:01    [671924]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
aleks2
Guest
Glory
Посмотрел. Увидел только то, что и так ясно:

QA не начинает транзакцию совсем - просто выполняет запрос.

Access начинает транзакцию, обламывается и откатывает транзакцию.

------------------
Это и так очевидно, вопрос как это объехать на хромой козе?
12 май 04, 08:21    [672782]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать OPENROWSET для Visual FoxPro  [new]
Glory
Member

Откуда:
Сообщений: 104760
Не использовать встроенные графические дизайнеры представлений.
12 май 04, 10:04    [672949]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить