![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO -> Access 2000 ???? ; HEEEEEEEEELP ! [D5, Access]
koks © (2002-03-26 13:45:00)Господа знатоки ! Помогите - совсем голову сломал.
1. Есть запрос adoqPrices. У него в св-ве SQL записано:
SELECT COLOR, CLARITY, AVG(PRICE) AS AVGPRICE
FROM "Polished_prices"
WHERE SOURCE =:Source, SIZE =:Size, CUT=:Cut
GROUP BY COLOR, CLARITY
ORDER BY COLOR, CLARITY
2. В свойстве Parameters прописано 3 параметра: Source, Sise, Cut с типом данных integer;
3. В процедуре вызываю:
adoqPrices.Close;
adoqPrices.Parameters.ParamByName("Source").Value := SourceId;
adoqPrices.Parameters.ParamByName("Size").Value := SizeId;
adoqPrices.Parameters.ParamByName("Cut").Value := CutId;
adoqPrices.Open;
При этом предварительная проверка на неNull у всех трех значений.
На строке adoqPrice.Open выдается:
EOleException with Message "Неопознанная ошибка"....
Все пальцы уже отшиб, экспериментирую со всякими установками....без Вашей помощи - никак.
И еще вопрос в догонку - Если я работаю с Access через ADO, каким синтаксическим правилам должны отвечать мои SQL-инструкции (непосредственно как в Access, или к-л. другим.) Я имею в виду всякие мелочи - скобки, пробелы и пр.
koks (2002-03-26 17:31:00) [1]Ыгы-гы-гы....
Johnmen (2002-03-26 17:02:00) [2]Ну можно еще ко всем своим именам добавлять некий префикс, например : KoksSIZE, KoksFILE, ... :))))
koks (2002-03-26 16:58:00) [3]Спасибо большое, действительно - проблема была в слове Size.
У меня даже Pivot - запрос с параметрами заработал (вот уж не ожидал ;))
Но все равно - если SIZE зарезервированное слово для Access, почему сама Access на него не ругается...
2 Johnmen - как я понял, основная практически ценная рекомендация - это последняя... Только сколько надо копий сломать пока появиться эта "чисто интуиция"...
Johnmen (2002-03-26 16:43:00) [4]Смотреть документацию по зарезервированным словам для конкретной БД.
Не использовать слова, кот.чисто интуитивно м.б.зарезерв-ми,
напр.FILE, FIELD, SIZE, ACCESS и т.д. и т.п.
koks (2002-03-26 16:27:00) [5]2 DiggerAbstract. У меня запрос к тестовой базе, в которой всего 30 записей...
2 Johnmen. OK! Но не могу понять - сама Access такой запрос выполняет.... Что имеется в виду под "синтаксисом БД" и где его посмотреть чтобы избежать подобного в будущем...
2 Aus - уже пробовал....
Johnmen (2002-03-26 15:51:00) [6]>koks © (26.03.02 15:33)
>просто убираю слово SIZE - все OK....
Уж сколько раз твердили миру....
Не используй в качестве имен своих объектов слова, совпадающие с синтаксисом БД !
DiggerAbstract (2002-03-26 15:38:00) [7]так все-таки, сколько, может у тебя просто TimeOut срабатывает
aus (2002-03-26 15:35:00) [8]Присваивай значения параметрам так:
Parameters[0].Value := SourceID
И еще имя таблицы не заключай в кавычки, не нужно это.
ПС
Не обязательно закрывать запрос перед изменением параметров, можно менять на ходу, а потом использовать requery.
koks (2002-03-26 15:34:00) [9]2 Dpetrovich ! Абсолютно...
koks (2002-03-26 15:33:00) [10]Како-то бред. Пишу:
SELECT SOURCE, SIZE, CUT, COLOR, CLARITY, PRICE
FROM [Polished_prices]
--> опять та же ошибка
просто убираю слово SIZE - все OK....
Подскажите, почему она (оно) на Size так неровно дышит.
DiggerAbstract (2002-03-26 15:30:00) [11]а сколько времени у тебя выполняется этот запрос?
asafr (2002-03-26 15:07:00) [12]По правилам Access можно просто писать Роlished_prices - попробуй без [].
DPetrovich (2002-03-26 14:46:00) [13]а если в компоненте adoqPrices Active=true поставить тоже самое?
koks (2002-03-26 14:32:00) [14]Конечно же, в моем коде строка WHERE такая:
WHERE (SOURCE=:Source) AND (SIZE=:Size) AND (Cut=:Cut)
<< Это меня уже тупит от всяких перестановок >>.
2 asafr: а по правилам Access надо писать [Роlished_prices] - так тоже не получается.
asafr (2002-03-26 13:58:00) [15]Не знаю, наверное глупо, но может "Polished_prices"
заменить на "Polished_prices"?
Когда работал с Access через ADO использовал синтаксис Access