Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ev1lzhenko
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 42
#1

Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка

14.12.2016, 13:56. Просмотров 887. Ответов 5
Метки нет (Все метки)

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

Delphi
1
2
3
IBQuery1.SQL.Text:='select *from organizaciya where naimenovanie='+Combobox1.Text;
ibquery1.Open;
ibquery1.Close;
Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка


Что не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2016, 13:56
Ответы с готовыми решениями:

Запрос работает в IBExpert и не работает в Delphi из компонента IBQuery
Точнее иногда если просматривать его значение в Watch то при открытии видна...

Ошибка при создании запроса к базе Access
Сразу хочу пояснить, я не программист, начальник попросил на работе сделать...

Ошибка запроса SQL
Добрый день. Пытаюсь выполнить запрос на выборку из двух таблиц, но вылетает...

Ошибка выполнения SQL запроса
Такая проблема, уважаемые: Имею базу данных Acces( myBasa1 ) в ней таблица(...

Опасная ошибка запроса в Delphi
Ребята, прошу помощи. У меня есть access база с тремя запросами, один из них...

5
YuryK
1030 / 847 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
14.12.2016, 14:14 #2
сформированный тобой запрос будет выглядеть так
T-SQL
1
select *from organizaciya where naimenovanie=какое-то наименование
а должно
T-SQL
1
select *from organizaciya where naimenovanie='какое-то наименование'
найди 2 отличия

P.S. хотя такая ошибка должна вызывать другое исключение. Ты уверен, что ошибка именно в этих строках?
0
ev1lzhenko
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 42
14.12.2016, 14:22  [ТС] #3
Цитата Сообщение от YuryK Посмотреть сообщение
Ты уверен, что ошибка именно в этих строках?
Да,именно в этих строках.Если их закомментить, то ничего не происходит.

То что написали вы, это так бы выглядел запрос если писать его в IBExpert. И там я эти запросы проверял и они работают.
А как написать через Ibquery в Delphi? Вроде ведь все по логике верно пишу.. после "=" пишу значение текста Combobox.
0
krapotkin
3389 / 3004 / 1039
Регистрация: 14.04.2014
Сообщений: 14,575
Записей в блоге: 15
14.12.2016, 14:27 #4
Лучший ответ Сообщение было отмечено ev1lzhenko как решение

Решение

вы не читаете ?
строковое значение должно быть внутри апострофов
у вас их нет, поэтому не работает
включить апостроф в строку можно удвоением
то же самое будет если заключить текстовую переменную в AnsiQuotedChar(Combobox1.Text, '''');
1
YuryK
1030 / 847 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
14.12.2016, 14:27 #5
Лучший ответ Сообщение было отмечено ev1lzhenko как решение

Решение

Цитата Сообщение от ev1lzhenko Посмотреть сообщение
Вроде ведь все по логике верно пишу
писать надо по правилам синтаксиса, а не по логике.
Не веришь? напиши
Delphi
1
IBQuery1.SQL.Text:='select *from organizaciya where naimenovanie='''+Combobox1.Text + '''';
и убедись, что так лучше.

P.S. плохо будет, если в тексте Combobox1 встретится одинарный апостроф '
1
qwertehok
2210 / 2199 / 599
Регистрация: 29.08.2013
Сообщений: 14,668
14.12.2016, 16:13 #6
Delphi
1
query.sql.text:='select * from T where ID='+QuotedStr(Combobox.Text);
Добавлено через 44 секунды
Delphi
1
2
query.sql.text:='select * from T where ID=:id';
query.Params[0].asString:=Combobox.Text;
1
14.12.2016, 16:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2016, 16:13

Ошибка при подключении к базе SQL 2000
при подключении к базе нужно использовать LoginPrompt. При запуске появляется...

Ошибка в коде - поиск записей в IBQuery
Доброго времени суток, подскажите пож-та, что не так. Вообщем есть DBGridEh, в...

Ошибка. SQL.Delphi
procedure TForm1.Button19Click(Sender: TObject); begin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru