Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в SQL запросе (ADODataset) к нескольким таблицам... (+)   Найти похожие ветки 

 
Existas   (2004-11-09 19:51) [0]

В модуле данных создаю ADODataset.
На основе ADOConnection к базе данных Access2000
База Access содержит несколько таблиц.

В свойстве CommandText - задаю текст запроса - SELECT * FROM Tbl1 - где Tbl1 - имя таблицы...
В данном случае - никаких проблем. Всё работает нормально.

Но если SQL запрос обращается к нескольким таблицам - например - SELECT * FROM Tbl1 LEFT JOIN Tbl2 ON Tbl1.Column1=Tbl2.Column2 - при попытке сделать Dataset - ACTIVE = True - возникает ошибка "Неопознаная ошибка".
Если не использовать выбор в запрос всех полей (*), а перечислять их поимённо с префиксом таблицы - ошибка возникает всё равно.
Текст запроса и просто писал, и создавал в ACCESS - в конструкторе запросов - ошибка одна и та же.

Причём - если использовать BDE - и делать всё совершенно аналогично (создавать BDEQuery) - ошибки не возникает и всё работает нормально с точно таким же текстом запроса.

Что я делаю не так ???
Как создавать ADODataset на основе выборки из нескольких связанных таблиц ???

Спасибо.



 
Polevi ©   (2004-11-09 19:55) [1]

mdac попробуй переустановить


 
sniknik ©   (2004-11-09 22:45) [2]

mdac + jet (jet-а в новых мдаках нет)

можно проверить действительно ли база 2000я (в аксессе на преобразование баз в другой формат посмотри, что открыто?)
т.к. если в BDE работает то это максимум 97 (если конечно не через ODBC коннект, но в нем тот же jet должен работать та же ошибка должна вылести)

и как база открыта, если на чтение(или не незапысываемом носителе находится), то в старом jet-е вполне возможно глюк вылезет, могли обьеденение в самой базе во временной таблице делать (в новом нет, пробовал), или временный индекс не может сформировать (при отсутствии).
а вот BDE обьеденение в своей директории во временных файлах формирует, вот и нет ошибки.

....

вариантов много, на самом деле, описывай все подробно, что как где лежит, как подключаешся и т.д. все что можеш.
т.к. вылезет скорее всего то что никто не вспомнил. ;о)


 
Existas   (2004-11-10 15:56) [3]

Блин - разобрался - путём нучного ТЫКА...
Перепробовал всё что мог.
Заработало нормально - когда в описании связи взял имена в квадратные скобки.

Может быть проблема была из-за того что в имя поля в одной таблице было - "Catalog" ???

Выглядело это так: SELECT * FROM TblPrice LEFT JOIN TblCatalogs ON (TblPrice.Catalog=TblCatalogs.CatName)

И не хотело работать...

Но когда сделал так: SELECT * FROM TblPrice LEFT JOIN TblCatalogs ON ([TblPrice].[Catalog]=[TblCatalogs].[CatName]);

ВСЁ ЗАРАБОТАЛО :-)))

И ещё - судя по отсутствию проблем - BDE 5.2 замечательно работает и с Access2000.

Всем спасибо за посильную помощь.


 
sniknik ©   (2004-11-10 19:32) [4]

ну вот, почти как и ожидал, то чего никому в голови не пришло... и прийти не могло, в виду умалчивания основной инфы
и не говори что это не так, в основном вопросе в показаном запросе
> например - SELECT * FROM Tbl1 LEFT JOIN Tbl2 ON Tbl1.Column1=Tbl2.Column2
зарезервированых слов не используется. а оказывается они подразумевались... а телепаты однако в бессрочном отпуске. ;о))


 
MORA   (2004-11-10 19:41) [5]

А для чего используется это зарезервированное слово?


 
sniknik ©   (2004-11-10 20:02) [6]

кто ж его знает, для чего именно это конкретное слово? наверное разработчика jet-а нужно спрашивать, а с нас достаточно - открыть хелп, зайти в раздел "Зарезервированные слова SQL" и прочитать чего нам без предосторожностей использовать нельзя

Зарезервированные слова SQL
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Ниже перечислены все слова, зарезервированные ядром базы данных Microsoft Jet для использования в инструкциях SQL. Слова, включающие строчные буквы, также зарезервированы другими приложениями. Поэтому разделы справочной системы, посвященные этим словам, содержат общие сведения, а не только описание их использования в языке SQL.

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

Примечание. Слова, отмеченные знаком звездочки (*) (например, Level и TableID), также являются зарезервированными, однако в данный момент не имеют определенного значения в контексте инструкций SQL ядра Microsoft® Jet. Неподчеркнутые слова приводятся без объяснений.

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

A

ABSOLUTE ANY
ADD ARE
ADMINDB AS
ALL ASC
Alphanumeric — см. TEXT ASSERTION
ALTER AUTHORIZATION
ALTER TABLE AUTOINCREMENT — см. COUNTER
And Avg
AS  

B-C

BEGIN COLLATION
Between COLUMN
BINARY COMMIT
BIT COMP, COMPRESSION
BIT_LENGTH CONNECT
BOOLEAN — см. BIT CONNECTION
BOTH CONSTRAINT, CONSTRAINTS
BY CONTAINER
BYTE CONTAINS
CASCADE CONVERT
CATALOG Count
CHAR, CHARACTER — см. TEXT COUNTER
CHAR_LENGTH CREATE
CHARACTER_LENGTH CURRENCY
CHECK CURRENT_DATE
CLOSE CURRENT_TIME
CLUSTERED CURRENT_TIMESTAMP
COALESCE CURRENT_USER
COLLATE CURSOR

(CATALOG неподчеркнуто. и это далеко не все, как можно по списку букв в начале определить)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
3-1100494317
Explorer
2004-11-15 07:51
2004.12.12
Выбор c одним DataSet


6-1087306299
Григорьев Антон
2004-06-15 17:31
2004.12.12
Прошу оценить статью про сокеты


3-1100174065
S@lik
2004-11-11 14:54
2004.12.12
Копирование таблици


4-1098688328
VZup
2004-10-25 11:12
2004.12.12
SetWindowText - не отправляется в Edit


4-1098134964
Piter
2004-10-19 01:29
2004.12.12
Отлов сообщения о повторном выводе иконки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский