![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOQuery и INI-файлы [D7, Access]
Washington © (2007-02-14 20:22:00)Код:
Ini:=TIniFile.Create(IniFileName);
Sis:=Ini.ReadInteger('User','Sis',0);
with Form1.ADOQuery1 do
begin
SQL.Clear;
SQL.Add('Select Reports');
SQL.Add('From Reports');
SQL.Add('Where Sis<=:Sis');
Parameters[0].Value:=Sis;
Active:=True;
open;
end;
Ошибка:
Отсутствует значение для одного или нескольких параметров.
Всё перепроверил - ничего не получается. Чо делать?
Washington (2007-02-17 17:52:00) [1]Разобрался я с этой ошибкой. Не смейтесь пожалуйста, но имена полей в таблице и в запросе не совпадали. Глупо, я знаю
Desdechado (2007-02-17 16:21:00) [2]> Попробовал без параметров - всё равно та же ошибка.
> Отсутствует значение для одного или нескольких параметров.
Это означает, что ты параметру в свой компонент квери вбил статически. И теперь вне зависимости от их наличия в тексте запроса компонент ждет присвоения указанных тобой вручную параметров.
Washington (2007-02-17 16:03:00) [3]Попробовал без параметров - всё равно та же ошибка.
>ADIDataSet.CommandText:= 'Select Reports From Reports Where Sis<=:Sis)
>AND (1=1)');
А если не один параметр Sis, а к примеру три - Sis, End, Spd? Тогда как?
Gloomer (2007-02-16 16:50:00) [4]не досмотрел, что Sis число:
SQL.Add('Where Sis<='+IntToStr(Sis));
Gloomer (2007-02-16 16:48:00) [5]А если попробовать без параметра???
SQL.Add('Select Reports');
SQL.Add('From Reports');
SQL.Add('Where Sis<='+Sis);
open;
sniknik (2007-02-16 14:28:00) [6]> Я его не юзаю на данный момент. У меня ADoQuery.
а я не юзаю ADoQuery... и примеры на нем не даю. из принципа. и что теперь делать то? %)
но вообщето если внимательно почитать [9] то там вовсе не про компонент...
хотя, и по компоненту были вопросы с проблемами и именно по параметрам, но тут вроде не то, там ошибка на момент внесения порезанного запроса возникала.
Washington (2007-02-16 13:37:00) [7]Подохжи, мне чо надо DataSet теперь жахать? Я его не юзаю на данный момент. У меня ADoQuery.
sniknik (2007-02-15 21:10:00) [8]> Точно?
Точно!
точно, точно? ;) это чтоб не ждать.
на самом деле был тут случай, у человека не видело параметр если он последний в запросе...
не знаю правда или нет, добиться того же мне не удалось (может потому, что не пользуюсь ADOQuery даже для тестов... самостоятельно написанных конечно, а присылать мне свой пример тот чел тогда не стал), но в общем решение тогда было ->
ADIDataSet.CommandText:= 'Select Reports From Reports Where (Sis<=:Sis) AND (1=1)');
последнее условие это только для того чтобы параметр не стоял в конце запроса... говорили помогло...
Anatoly Podgoretsky (2007-02-15 20:43:00) [9]> Washington (15.02.2007 20:41:07) [7]
> Настроен
Точно?
Washington (2007-02-15 20:41:00) [10]Настроен
Desdechado (2007-02-15 17:30:00) [11]TADOConnection настроен?
Washington (2007-02-15 17:14:00) [12]Да и ещё: Имя таблицы поменял на tReports
Washington (2007-02-15 16:00:00) [13]1. Это не единственный ADOQuery, есть ещё один, тоже ни фига не открывает.
2. close перед clear есть, просто забыл скопировать
3. Active:=true убрал
4. Используется Jet 4
ЮЮ (2007-02-15 08:36:00) [14]Это единственный TADOQuery в проекте? Остальные открывают НД нормально?
Используется ODBC Access Driver? Почему не Jet?
Desdechado (2007-02-14 20:55:00) [15]
Active:=True;
open;
Масло масляное. Достаточно чего-то одного.
ЗЫ есть уверенность, что допустимо совпадение имени поля и имени таблицы?
Johnmen (2007-02-14 20:49:00) [16]
> Чо делать?
Повеситься? А что остаётся, если такое имя поля? :)))
А если Prepare перед Parameters[0]... и Close перед Clear?