Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и базы данных

Войти
Регистрация
Восстановить пароль
 
ev1lzhenko
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 42
#1

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

14.12.2016, 13:56. Просмотров 223. Ответов 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 - Delphi БД
Точнее иногда если просматривать его значение в Watch то при открытии видна ошибка Delphi exception EDatabaseError at $89DF91D, а при...

Ошибка при создании запроса к базе Access - Delphi БД
Сразу хочу пояснить, я не программист, начальник попросил на работе сделать программку для учета отгулов, и я посчитав что сделаю это чуть...

Ошибка запроса SQL - Delphi БД
Добрый день. Пытаюсь выполнить запрос на выборку из двух таблиц, но вылетает ошибка. with DMF.AResult do begin close; ...

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

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

Ошибка при подключении к базе SQL 2000 - Delphi БД
при подключении к базе нужно использовать LoginPrompt. При запуске появляется ошибка "login failed for user D1. Reason: Not associated with...

5
YuryK
1026 / 843 / 313
Регистрация: 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
2667 / 2543 / 644
Регистрация: 14.04.2014
Сообщений: 12,273
Записей в блоге: 7
14.12.2016, 14:27 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
вы не читаете ?
строковое значение должно быть внутри апострофов
у вас их нет, поэтому не работает
включить апостроф в строку можно удвоением
то же самое будет если заключить текстовую переменную в AnsiQuotedChar(Combobox1.Text, '''');
1
YuryK
1026 / 843 / 313
Регистрация: 08.12.2016
Сообщений: 3,283
14.12.2016, 14:27 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ev1lzhenko Посмотреть сообщение
Вроде ведь все по логике верно пишу
писать надо по правилам синтаксиса, а не по логике.
Не веришь? напиши
Delphi
1
IBQuery1.SQL.Text:='select *from organizaciya where naimenovanie='''+Combobox1.Text + '''';
и убедись, что так лучше.

P.S. плохо будет, если в тексте Combobox1 встретится одинарный апостроф '
1
qwertehok
1593 / 1584 / 337
Регистрация: 29.08.2013
Сообщений: 10,622
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 - Delphi БД
Доброго времени суток, подскажите пож-та, что не так. Вообщем есть DBGridEh, в нем данные отображаются из IBQuery2, задача состоит в том,...

ошибка SQL На Delphi - Delphi БД
Когда устанавливаю у свойств Active и RequestLive компоненты Query1 значение True, используя инспектор объектов. свойств Active не хочет...

Ошибка. SQL.Delphi - Delphi БД
procedure TForm1.Button19Click(Sender: TObject); begin DBGrid1.DataSource.DataSet.Active:=true; frmdm.ADOQuery8.SQL.Text:= 'Delete...

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


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

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

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