Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADOQuery [D5, Access]


Страницы:   1 2 3

Лариса ©   (2003-05-30 11:37:00) 

Добрый день, всем. Подскажите почему я не могу передать параметры в Query. Это мой первый опыт работы с данным компонентом и почем утакая проблема понять не могу. Я с помощью компонента ADOQuery пытаюсь удалить данные по условию из таблицы в Аccess. В самом Query написано:
delete from tab1
where god=:god and mes=:mes
а в программе пишу:
q1.close;
q1.parameters[0].value:=2000;
q1.parameters[1].value:="01";
q1.execsql;
После запуска программы выдается ошибка, что слишком мало параметров нужно 2. Что делать?


NAlexey   (2003-05-30 15:18:00) [21]

Гдето ты нас кидаешь...
Предполагаемые действия:
1) Создать эти параметры в DesignTime, принудительно присвоить им тип и значение потом запустить и смотреть что будет.
2)Попробывать написать так:
with TADOQuery.Create(nil) do
Connection := YourADOConnection;
SQL.Text := Format("delete from tab1 where god = %d and mes = %s", [1, "Blah-Blah"]);
try
ExecSQL;
finally
Free;
end;
end;
3)Сообщить о результатах.


Zz_   (2003-05-30 15:14:00) [22]

А может попробовать руками ?

q1.parameters.Clear;
q1.parameters.CreateParameter(...);


Лариса   (2003-05-30 15:13:00) [23]

NAlexey где параметры добавлены?????


Лариса   (2003-05-30 15:11:00) [24]

Попробовала. Ошибка опять-таки на строке q2.execsql; Пишет: "[Microsoft][Драйвер ODBC Microsoft Access] Слишком мало параметров.Требуется 4."


NAlexey   (2003-05-30 15:06:00) [25]

Да там наверное в DesignTime добавлено параметров скорее всего.


sniknik   (2003-05-30 15:03:00) [26]

бред.
ну ладно, код правильный, теперь давай со свойствами компонента разбиратся.
сделай все по умолчанию а лутше добавь новый и нечего не меняй кроме Connection. а то может у тебя там фильтры или связи какие. и сделай то же но с q 2. ???


Лариса   (2003-05-30 14:52:00) [27]

sniknik додавила, теперь ошибок на строки q1.parameters[0].DataType:= ftInteger; и q1.parameters[1].DataType:= ftString; не выдает. Но ошибка по поводу параметров осталась.


sniknik   (2003-05-30 14:45:00) [28]

Лариса (30.05.03 14:43)
модуль DB в uses.


Лариса   (2003-05-30 14:43:00) [29]

sniknik прям скопировала в свою программу. В итоге на строках:q1.parameters[0].DataType:= ftInteger; и q1.parameters[1].DataType:= ftString; ошибка Undeklared identifier ftInteger и ftString;
если эти строки забить, то в итоге та же ошибка с парметрами только теперь ему мало и надо 4 :))))


NAlexey   (2003-05-30 14:42:00) [30]

>Предположение
Ах да, чтоэто я, у тебя дело до запуска даже не доходит...


NAlexey   (2003-05-30 14:38:00) [31]

>Cлушайте, издевательство какое-то. :) Я уже все пеерпробовала, а итог такой же.
Предположение: не есть ли у тебя где триггерок или процедура какая которая срабатывает на удаление из этой таблицы?


sniknik   (2003-05-30 14:37:00) [32]

чем дальше тем больше ощущение что самое интересное за кадром...

напиши так, только точно,
q1.close;
q1.ParamCheck:= true;
q1.SQL.Text:= "delete from tab1 where god=:pGod and mes=:pMes";
q1.parameters[0].DataType:= ftInteger;
q1.parameters[0].value:= 2000;
q1.parameters[1].DataType:= ftString;
q1.parameters[1].value:= "01";
q1.execsql;
что дает в результате? и где (строка ошибки).


Лариса   (2003-05-30 14:37:00) [33]

NAlexey честна я с вами :) Я что в начале написла с тех пор ничего не изменилось :) Только передачу параметров меняла когда кто-нибудь что-то советовал. В итоге - ничего. Та же ошибка.

WarLord ADOQuery к ADOConnection подключен и он активен.

p.s. 1 параметр передает нормально, на 2 затыкается


WarLord   (2003-05-30 14:34:00) [34]


> Лариса (30.05.03 14:32)
> Слушайте, издевательство какое-то. :) Я уже все пеерпробовала,
> а итог такой же.

чудес не бывает!


Лариса   (2003-05-30 14:32:00) [35]

Слушайте, издевательство какое-то. :) Я уже все пеерпробовала, а итог такой же.


WarLord   (2003-05-30 14:30:00) [36]


> Лариса (30.05.03 14:21)

самый интересный вопрос: ADOQuery к ADOConnection подключен? ADOConnection активен?


NAlexey   (2003-05-30 14:27:00) [37]

>слишком мало параметров, нужно 2, а иногда нужно 4.
Ты дорогая Лариса нами не доконца с нами честнА :) Такого не может быть, потому что быть такого не может. Приводи полный текст запроса и выполняющегося кода.


NAlexey   (2003-05-30 14:24:00) [38]

Parameters.FindParam("YourName").Value


Лариса   (2003-05-30 14:21:00) [39]

Нет, я только начала писать программку и там ничего еще кроме этого нет. Самое интересное, что когда выдется ошибка, то иногда пишется: слишком мало параметров, нужно 2, а иногда нужно 4.


Ann   (2003-05-30 14:20:00) [40]

Ларис, а какую точно ошибку выдает?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо