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

Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка - Delphi БД/Interbase

14.12.2016, 13:56. Просмотров 349. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Interbase Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка (Delphi БД):

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

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

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

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

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

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

5
YuryK
1029 / 846 / 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 / 3
Регистрация: 11.12.2016
Сообщений: 42
14.12.2016, 14:22  [ТС] #3
Цитата Сообщение от YuryK Посмотреть сообщение
Ты уверен, что ошибка именно в этих строках?
Да,именно в этих строках.Если их закомментить, то ничего не происходит.

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

Решение

вы не читаете ?
строковое значение должно быть внутри апострофов
у вас их нет, поэтому не работает
включить апостроф в строку можно удвоением
то же самое будет если заключить текстовую переменную в AnsiQuotedChar(Combobox1.Text, '''');
1
YuryK
1029 / 846 / 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
2195 / 2185 / 597
Регистрация: 29.08.2013
Сообщений: 14,592
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
Привет! Вот еще темы с решениями:

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

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

ошибка SQL На Delphi
Когда устанавливаю у свойств Active и RequestLive компоненты Query1 значение...

Запрос к бд работает в аксес но не работает в delphi? Подскажите в чём ошибка
begin //ADOQuery1.SQL.Text:='drop table `request`'; //ADOQuery1.ExecSQL;...


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

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

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