| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Как вставить текстовое значение в SQL-запрос в ADO |
| Автор: oleg153 26.2.2009, 16:27 |
| Не могу передать в ADOQuery значение SQL-запроса. Если писать в редакторе - проблем нет, но присвоить не получается Собственно запрос ------------------- Select * from data_record where rDate='20090210' and rTime='1235' and (rState in ('1','2')) ------------------- но как его присвоить ? ADOQuery1.Close; ADOQuery1.SQL.Add(' select * '); ADOQuery1.SQL.Add(' from data_record '); ADOQuery1.SQL.Add(' where rDate=:'20090210' and rTime=:'1235' and (rState in ('1','2')) '); Понятно что последнюю строку с ' которые обозначают текстовые константы Дельфи не переваривает. Как можно это сделать ? |
| Автор: pseud 26.2.2009, 16:54 | ||
хотя бы так
|
| Автор: oleg153 26.2.2009, 16:58 |
| Вроде понял что '20090210' можно заменить на "20090210" но (rState in ("1","2")) все равно не проходит. Пишет что "неверное имя столбца '2'. Понятно что можно задать через OR , но если значений с которыми сравниваем не 2 а много то получиться слишком громоздко. |
| Автор: oleg153 26.2.2009, 17:17 | ||
Вариант
Не проходит. Ошибка сразу в значении столбца rDate |
| Автор: pseud 26.2.2009, 17:44 |
тогда выкладывай описание твоей таблицы. а именно - типы полей. |
| Автор: oleg153 26.2.2009, 18:30 |
| Простейшая таблица, все поля varchar |
| Автор: Kbl4AH 26.2.2009, 18:56 | ||||
или так
|
| Автор: oleg153 26.2.2009, 19:24 | ||
| Казалось все просто, но заставить работать не могу. Сначала не знал как запрос с обозначением текстовой константы. Заменил на " " вроде проверка прошла. Но проблема в том что у меня часть запроса задается параметрами, а часть это фиксированные значения. И ничего не работает
Таблица имеет все текстовые поля , и передаю соответственно текстовые значения. Нехотел использовать OR вместо IN, ну ладно. Но почему теперь дает ошибку : Неправильно определен обьект Parameter. Предоставлены несовместимые или неполные сведения. Как в запросе соединять значения определяемые как параметры (Prm(i) и значения в виде ТЕКСТОВЫХ которые являются константами и которые в обычном SQL-запросе нужно выделять кавычками 'text'. ? |
| Автор: oleg153 26.2.2009, 21:41 | ||||
Помогает если налепить подряд несколько кавычек. Но логики я понять немогу....
или если вместо Текстовых констант идут числа , которые пишутся в базе в текстовые поля, тогда
Такой вариант работает. Но я пока не могу понять что в данной записи обозначают три кавычки подряд ? Почему при их использовании строка не "распадается" ??? |
| Автор: Akella 27.2.2009, 00:39 |
не используй двойные ковычки пользуйся QuotedStr() |
| Автор: pseud 27.2.2009, 10:13 | ||||
oleg153,
к чему двоеточие? Добавлено через 2 минуты и 9 секунд oleg153, разъясняю пост Акеллы
|
| Автор: oleg153 27.2.2009, 15:34 |
| Спасибо, все понял и сделал. Вопрос можно считать закрытым ! |