Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2011, 17:32   #1
Nikolay88
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 15
Вопрос ошибка при выборке текстовых данных в таблице

Добрый день. Выполняю следующую операцию.
Вывел в StringGrid таблицу базы данных MySql. После чего хочу выбрать в таблице (то есть чтобы в StringGrid отображались только интересующие меня данные) по условию, которое задаётся в поле Edit.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Myquery1.SQL.Clear;
  Myquery1.SQL.Add('SELECT * FROM table WHERE name='+edit1.text);
  MyDatasource1.DataSet:=MyQuery1;
  Myquery1.Active:=true;
end;
Когда я ввожу в Edit числовое значение (выборка в стобце с числовыми данными, та же процедура, но с числовым стобцом таблицы), то все нормально работает. Но при попытке выбрать из стобцов таблицы, содержащих текст, ошибка:
Unknown column 'ivan' in 'where clause'

Последний раз редактировалось Nikolay88; 21.06.2011 в 17:35.
Nikolay88 вне форума Ответить с цитированием
Старый 21.06.2011, 17:41   #2
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Ну так он и должен выдавать ошибку ты ведь не указал что данные текстовые (String), иначе он будет что это имя поля, т.е. так выглядит твой запрос

Код:
SELECT * FROM table WHERE name=ivan
и SQL принимает name и ivan за сравниваемые поля... а ты хочешь так...

Код:
SELECT * FROM table WHERE name="ivan"
Однако кавычки не ставишь.

Вот код который тебе нужен...
Код:
Myquery1.SQL.Add('SELECT * FROM table WHERE name=''' + Edit1.Text + '''') ;
Еще можно так...
Код:
Myquery1.SQL.Add('SELECT * FROM table WHERE name=' + QuotedStr(Edit1.Text)) ;
Твой код работал бы если ты вводил бы только цифры в Edit1, а если текст то нужно обязательно указывать это... Запомни это хорошо и не делай больше таких ошибок...

Последний раз редактировалось Gulik; 21.06.2011 в 17:48.
Gulik вне форума Ответить с цитированием
Старый 21.06.2011, 18:25   #3
Nikolay88
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 15
Хорошо

Спасибо за совет. Честно говоря пробовал брать Edit в кавычки, но по одной с каждой стороны. А тут сразу несколько.
Nikolay88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нумерация строк при выборке iankov SQL, базы данных 7 07.09.2012 12:48
Ошибка при создании таблицы ProgDel БД в Delphi 5 07.11.2010 11:31
Не отображаются русские символы при выборке данных из таблиц MySQL. vedro-compota PHP 0 23.09.2010 17:43
Макрос по выборке данных zenner Microsoft Office Excel 11 09.04.2010 15:09
Ошибка при создании таблицы LAGOX SQL, базы данных 1 28.03.2009 00:46