Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
Что за фигня с присоединенными через ODBC foxpro26 DBF таблицами:
SELECT *
FROM T1
UNION ALL SELECT *
FROM T2

Говорит ODBC - ошибка вызова
[Microsoft][ODBC Visual Foxpro Driver] Syntax error(#200)

В Visual foxpro с открытыми (НЕ ЧЕРЕЗ ODBC разумеется) T1.dbf и T2.dbf этот запрос отрабатывает нормально!

Что, мелкософт не может с собственными источниками данных нормальный коннект наладить или траблы, скажем с BDE, который у меня стоит,ДА, кстати, еще - MSWin2K(SP3),MsOffice2K SP1,SP2 .
18 июл 03, 23:33    [268171]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
Люди! Караул! Ответьте!
Все работу с отчетами на предприятиии строю на базе Access с прилинкованными внешними источниками и тут такие траблы с ODBC - то одно , то другое, А это уже новая фишка вылезла - что никак UNION не использовать !
Я думаю, что без BDE этого не будет , но проверить смогу только на работе в понедельник.Да и если не будет - BDE все-равно нужен - у нас слишком много разнородных источников даных, которые я расчитывал объединить через Access (через его привязанные таблицы). Без ODBC (через ISAM драйверы ) тоже не обойтись - опять же из-за BDE - фокспровские dbf-ки не привязываются т.о. к Access ...
20 июл 03, 12:40    [268559]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
Knowledge Base

ACC2000: ODBC Call Failed (#200) Error Running a Union Query on Linked Visual FoxPro TablesPSS ID Number: 244904

Article Last Modified on 11/29/2000


--------------------------------------------------------------------------------
The information in this article applies to:


Microsoft Access 2000

--------------------------------------------------------------------------------

This article was previously published under Q244904
Moderate: Requires basic macro, coding, and interoperability skills.

This article applies only to a Microsoft Access database (.mdb).


SYMPTOMS
When you run a union query with two linked Microsoft Visual FoxPro tables, you may receive the following error message:
ODBC call failed [Microsoft] [ODBC Visual F(#200)]
RESOLUTION
Instead of using linked tables, create a SQL pass-through query that uses the Microsoft Visual FoxPro ODBC driver to perform the union query. To do so, follow these steps:
Create a data source that uses the Visual FoxPro ODBC driver:
Start the ODBC Data Source Administrator.
Click Add to add a data source.
In the list of drivers, click Microsoft Visual FoxPro Driver, and then click Finish.
In the ODBC Visual FoxPro Setup dialog box, type a data source name and a description.
Click Free Table directory, and then type or browse to the directory of free tables to which the data source connects.
Click OK to close the ODBC Visual FoxPro Setup window.
Click OK again to quit the ODBC Data Source Administrator.
Under Objects, click Query, and then click New.
In the New Query window, click Design View, and then click OK.
Microsoft Access displays the Show Table dialog box. Without adding tables or queries, click Close.
On the Query menu, point to SQL Specific, and then click Pass-Through. Microsoft Access displays the SQL Pass-Through Query window.
Type the code for the union query in the SQL Pass-Through Query window. The following is an example. In the example, "LinkedVFoxProTable1" and "LinkedVFoxProTable2" are the names of the two tables.
SELECT * FROM LinkedVFoxProTable1
UNION
SELECT * FROM LinkedVFoxProTable2

Run the query. Note that the query runs without errors and returns the recordset.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
In an open Access 2000 database, link two Visual FoxPro files.
Create the following union query:
SELECT * FROM LinkedVFoxProTable1
UNION
SELECT * FROM LinkedVFoxProTable2

Run the query. Note that you receive the following error message:
ODBC call failed [Microsoft] [ODBC Visual F(#200)]


Additional query words: pra attached err

Keywords: kbbug kberrmsg KB244904
Technology: kbAccess2000 kbAccess2000Search kbAccessSearch



--------------------------------------------------------------------------------

Send feedback to Microsoft

© 2003 Microsoft Corporation. All rights reserved.
20 июл 03, 13:38    [268582]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
Спасибо, конечно, за справку,
но, как я понял , мелкософт только нагло признает свои ошибки.

Или - все-таки не понял - там предлагается "create a SQL pass-through query" , но у меня в русском Access 2000 есть только обычный SQL квери ,
в меню Вид после открытия запроса есть опции "Конструктор","Режим SQL","Режим таблицы" и ничего еще похожего на "SQL pass-through query",
В режиме "Режим SQL" я и пробовал свой тест.

Поэтому как его создать , а и еще мне надо программно это сделать - неясно!!!!?????????????
20 июл 03, 18:06    [268706]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
2yuniki
> и ничего еще похожего на "SQL pass-through query",

В режиме конструктора - Запрос- Запросы SQL- Запрос к серверу (это он и есть pass-through)
20 июл 03, 19:06    [268722]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
Да, нашел , спасибо.
А как этот pass-through запрос програмно создать в MDB базе ?
простой запрос (без его выполнения ) я создаю след образом:

Set cmd = New ADODB.Command
Set cmd.ActiveConnection = Cnn
cmd.CommandType = adCmdText
cmd.CommandText = "CREATE PROCEDURE ИмяЗапроса As <ТекстЗапроса>
cmd.Execute

и потом могу его исполнить :

cmd.CommandType = adCmdStoredProc
cmd.CommandText = "ИмяЗапроса"
cmd.Execute

а с pass-through запросом как обходитья ?
И если можно несколько слов , то все-таки что это за запрос к серверу, если у нас свободный каталог foxpro2.6 ?
20 июл 03, 21:44    [268765]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
И еще вдогонку :

А если таблицы , которые нужно объединить в одном запросе находятся в разных каталогах (это же разные DSN получаются ) и че делать ??
20 июл 03, 21:55    [268766]     Ответить | Цитировать Сообщить модератору
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
yuniki
Member

Откуда:
Сообщений: 1171
ВЫнужден еще раз воззвать : "Помогите Люди!!!"
21 июл 03, 14:20    [269602]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: НЕ работает Union с присоединенными через ODBC dbf-ми  [new]
gol_em
Member

Откуда:
Сообщений: 1
yuniki,
Добрый день, тоже парился с похожей проблемой
Драйвер ODBC не хотел брать запрос с UNION
В общем решение такое, при передаче запроса его надо отсылать одной строкой или же разбивать но чтобы запрос после UNION был с ним на одной строке
Select t1.aa from test t1
UNION t2.aa from test2 t2
UNION t3.aa from test2 t3
28 янв 19, 13:38    [21795776]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить