Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Query не видит параметр


Автор: begin 4.3.2009, 15:13
В этом куске кода не могу найти ошибку. Компилируется нормально, но при выполнении запроса выдает ошибку: параметр txt1 не найден

Код

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from t_group where id=":txt1"');
query1.ParamByName('txt1').Value:=in2;
query1.Open;
t2:=query1.Fields.Fields[1].AsString;

где in2 имеет уже имеет численное значение

Автор: Rodman 4.3.2009, 15:40
а зачем кавычки вокруг параметра?

Автор: begin 4.3.2009, 16:29
Цитата(Rodman @ 4.3.2009,  15:40)
а зачем кавычки вокруг параметра?

Убрал в запросе кавычки вокруг параметра, но теперь выдает ошибку:
Цитата

Search condition is not applicable

Автор: Akella 4.3.2009, 18:41
в какой момент?

Автор: pseud 4.3.2009, 18:54
...туплю

Добавлено @ 18:57
Код

query1.ParamByName('txt1').AsString:=QuotedStr(in2);


блин., опять туплю

Автор: Данкинг 4.3.2009, 19:17
Есть такой глюк, неоднократно замечал, используй QuotedStr. smile 

Автор: begin 4.3.2009, 19:28
Цитата(Akella @ 4.3.2009,  18:41)
в какой момент?

сейчас проверил - ошибка возникает при попытке выполнить эту строку из того кода:

Код

query1.Open;



Цитата

используй QuotedStr

так ведь кажется для того и используют параметры, чтобы не морочить голову с QuotedStr?  smile 

Автор: Данкинг 4.3.2009, 20:36
Цитата(begin @  4.3.2009,  19:28 Найти цитируемый пост)
так ведь кажется для того и используют параметры, чтобы не морочить голову с QuotedStr?

Да, только в случае с select и .open обычно возникает вот такой глюк. Как с ним бороться иначе - я лично пока что не знаю.  smile 

Автор: Akella 4.3.2009, 20:59
Цитата(begin @  4.3.2009,  15:13 Найти цитируемый пост)
where id=

обычно id целочисленный тип, а ты пытаешься присвоить, строковый тип параметру

Автор: begin 4.3.2009, 21:09
Цитата(Akella @ 4.3.2009,  20:59)
обычно id целочисленный тип, а ты пытаешься присвоить, строковый тип параметру

Я как раз численный пытаюсь присвоить тип:

Код

var
array_post2: array[1..100] of integer;

in2:=array_post2[combobox70.ItemIndex+1];


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)