Не получается поиск с помощью IBQuery. Не могу поня ПОЧЕМУ?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

Когда я в ходе выполнения проги добавляю в кверик такую строку:

Код: Выделить всё

IBQuery1.SQL.Add('select * from table_name where field1='+Edit1.Text+' and field2='+Edit2.Text+' and field3='+Edit3.Text)
выдает ошибку, если в Edit не вводить данные в верхних одинарных апострофах.
Когда писал базу на InterBase 5.6 я писал так:

Код: Выделить всё

IBQuery1.SQL.Add('select * from table_name where field1="'+Edit1.Text+"' and field2="'+Edit2.Text+'" and field3='+Edit3.Text+'"')
и всё работало. А в InterBase 6.5 так не катит.
Подскажите как можно решить эту проблему!!!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Начиная с IB 6.0 в двойных кавычках указываются имена полей, таблиц или их псевдонимы (если они содержат пробелы и/или русские буквы). Текст ограничивается ОДИНАРНЫМИ кавычками. Следовательно прокатит вариант:

Код: Выделить всё

IBQuery1.SQL.Add('select * from table_name where field1='''+Edit1.Text+''' and field2='''+Edit2.Text+''' and field3='''+Edit3.Text+'''')
(Две одинарные кавычки внутри строки Паскаль транслирует в одну одинарную. Ну или chr(39) можно использовать. Это кому как больше нравится.)
Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

Да я уже сам нашёл это. Но всё равно спасибо за ответ! :wink:
sasha3050
Сообщения: 26
Зарегистрирован: 04 окт 2008, 23:13

Пожалуйста помогите очень надо!!!!!!!!!!!Написать программу на Paskal, которая вычисляет среднюю длину слов в файле, который содержит текст.В данном случае будет считатьтся любая строка символов, которая начинается и заканчивается одним с следующих елеметов: пробел, запятая, точка, начало строки и конец строки.В программе должна быть обозначена функция, которая получает в качестве аргумента поток ввода с файла.
Ответить