Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.11.2012, 18:59
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию Где ошибка не пойму

Выдает следующее

Вот сама процедура вызывающая ее
Код:
procedure TBarcodeForm.RadioButton1Click(Sender: TObject);
begin
 if BarcodeForm.Combobox1.ItemIndex > 0 then
   begin
BarcodeForm.ADOQuery1.SQL.Clear;
BarcodeForm.ADOQuery1.Close;
    BarcodeForm.ADOQuery1.SQL.Add('SELECT * FROM works WHERE :dd1 = "Âûñîêàÿ"');
     case BarcodeForm.Combobox1.ItemIndex  of
      1: BarcodeForm.ADOQuery1.Parameters.ParamByName('dd1').Value:= 'cImpotance';
      2: BarcodeForm.ADOQuery1.Parameters.ParamByName('dd1').Value:= 'cSrochost';
     else BarcodeForm.ADOQuery1.Parameters.ParamByName('dd1').Value:= 'cImpotance';
     end;
BarcodeForm.ADOQuery1.Open;
   end;
end;
Ответить с цитированием
  #2  
Старый 11.11.2012, 19:11
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от aqula
Вот сама процедура вызывающая ее
Код:
.....
    BarcodeForm.ADOQuery1.SQL.Add('SELECT * FROM works WHERE :dd1 = "Âûñîêàÿ"');
.....
Здесь вместо кавычек используй апострофы:
Код:
    BarcodeForm.ADOQuery1.SQL.Add('SELECT * FROM works WHERE :dd1 = ''Âûñîêàÿ''');
Ответить с цитированием
  #3  
Старый 11.11.2012, 23:21
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию

Спасибо. Вот только выдает пустое множество. Странно.
Ответить с цитированием
  #4  
Старый 12.11.2012, 00:15
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

тогда уж и вовсе так:
Код:
BarcodeForm.ADOQuery1.SQL.Text:='SELECT * FROM works WHERE :dd1 = :p_dd1';
BarcodeForm.ADOQuery1.ParamByName('dd1').Value:= 'cImpotance';
BarcodeForm.ADOQuery1.ParamByName('p_dd1').Value:= 'Высокая';
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #5  
Старый 12.11.2012, 02:27
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Yurk@
тогда уж и вовсе так:
Код:
BarcodeForm.ADOQuery1.SQL.Text:='SELECT * FROM works WHERE :dd1 = :p_dd1';
BarcodeForm.ADOQuery1.ParamByName('dd1').Value:= 'cImpotance';
BarcodeForm.ADOQuery1.ParamByName('p_dd1').Value:= 'Высокая';
Я только заметил, что запрос действительно какой-то странный получается
Цитата:
Сообщение от aqula
Спасибо. Вот только выдает пустое множество. Странно.
А что по твоим расчётам запрос должен был выдать?
Ответить с цитированием
  #6  
Старый 12.11.2012, 08:09
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Запросы вообще какие-то странные, в условии выборки нет анализа полей таблицы.
запрос типа:
Код:
select * from foo where 1 = 'вася'
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 12.11.2012, 08:25
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию

А что именно в нем странного? должен выдать все поля из таблички работы в меткой важность высокая.
Ответить с цитированием
  #8  
Старый 12.11.2012, 08:41
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

ты сравниваешь два параметра, а не задаешь условие выборки
Код:
select * from work where PRIORITY = :dd1
(PRIORITY) - поле таблицы
Не знаю как еще объяснить.
Ты же делаешь
Код:
select * from work where :параметр1 = :параметр2
параметр1, параметр2 - параметры которые sql парсер заменит на значения и ты получишь
select * from work where 1 = 'жопа'
условие всегда будет false (если база не сругается ошибкой), выборка ничего не вернет.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 12.11.2012, 18:09
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию

Понял. Параметром не может быть название поля, да?
Ответить с цитированием
  #10  
Старый 12.11.2012, 18:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от aqula
Понял. Параметром не может быть название поля, да?
Да, не может.
Имя таблицы тоже не может быть параметром.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025