![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос с параметром и без
Delphist2 © (2010-03-24 23:08:00)Когда я задаю запрос:
adoquery1.SQL.Text:='select * from Таблица where (Наименование=:par1)';
adoquery1.Parameters.ParamByName('par1').Value:=listbox1.Items.Strings[i];
то не находится вообще ничего, хотя должно. А когда я переписываю запрос:
adoquery1.SQL.Text:='select * from Таблица where (Наименование='+quotedstr(listbox1.Items.Strings[i])+')';
то все находится на тех же данных. Что не так в первом примере?
Типы параметра пробовал разные: ftWideString, ftString, еще всякие.
sniknik (2010-03-25 11:41:00) [1]> D7, Access
хм... ну тогда компоненты типа TNT.
sniknik (2010-03-25 11:39:00) [2]> Что не так в первом примере?
запрос и параметр это разные объекты, и может быть запрос в ansi а параметр в юникоде (или наоборот), а во втором случае ты неявно приводишь к чему то одному...
была бы указана версия дельфи было бы проще... но очевидно используется 2009/2010.
Плохиш © (24.03.10 23:17) [1]
> А если
> ...
а если там наоборот? ...
Плохиш © (24.03.10 23:28) [2]
> Хотя, скушно, неуказано ни версия делфи, ни бд.
+1
вообще не хотел отвечать из-за этого, но иногда хочется и от на работы отвлечься а интересного нет...
Delphist2 (2010-03-25 10:25:00) [3]
> и русские наименования не надо в прямоугольные скобки взять?
русские наименования берутся в скобки когда больше одного слова, т. е. когда есть пробел.
D7, Access. Значение параметра - просто строка. А трассировка - это ход выполнения запроса? Ну там скорее всего типа нет таких элементов, и все. Типа не нашлось. Ошибок, исключений нет. А откуда взять трассировку?
Anatoly Podgoretsky (2010-03-25 05:17:00) [4]> Плохиш (24.03.2010 23:28:02) [2]
Ни значение параметра, ни трассировка не проведена. Типичный партизан и не лечится.
Плохиш (2010-03-24 23:28:00) [5]Хотя, скушно, неуказано ни версия делфи, ни бд.
Плохиш (2010-03-24 23:17:00) [6]А если
adoquery1.SQL.Text:='select * from Таблица where (Наименование=:par1)';
adoquery1.Prepared := true;
adoquery1.Parameters.ParamByName('par1').DataType := ftString;
adoquery1.Parameters.ParamByName('par1').Value:=listbox1.Items.Strings[i];
и русские наименования не надо в прямоугольные скобки взять?