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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2010, 19:56   #11
Mr.Steroid
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 52
По умолчанию

Всё понял! Спасибо всем большое)

Извини, я пробовал писть запрос как ты посоветовал,
Код:
procedure 

TForm5.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s : string;
  begin
       datasource1.DataSet:=ADOQuery1;
      if ADOQuery1.Active then ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
  if inttostr(RadioGroup1.ItemIndex)='3' then
    S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' =  '+QuotedStr(StrToInt(Edit1.Text))+' Order By №'
 else

  S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' like '+#39+Edit1.Text+'%'+#39+'Order By Фамилия';
  ADOQuery1.SQL.Add(S);
  ADOQuery1.Open;
  end;
Значение RadioGroap'3' это числовое поле!
Выдаёт ошибку:
[Error] Unit5.pas(117): Incompatible types: 'String' and 'Integer'

Последний раз редактировалось artemavd; 16.10.2010 в 20:43.
Mr.Steroid вне форума Ответить с цитированием
Старый 16.10.2010, 20:33   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

А так:
Код:
procedure TForm5.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s : string;
  begin
       datasource1.DataSet:=ADOQuery1;
      if ADOQuery1.Active then ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
  if RadioGroup1.ItemIndex=3 then
    S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' =  '+QuotedStr(StrToInt(Edit1.Text))+' Order By №'
 else

  S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' like '+#39+Edit1.Text+'%'+#39+'Order By Фамилия';
  ADOQuery1.SQL.Add(S);
  ADOQuery1.Open;
  end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 20:36   #13
Mr.Steroid
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 52
По умолчанию

Погоди, попробую

Опять та же ошибка в том же месте
[Error] Unit5.pas(117): Incompatible types: 'String' and 'Integer'

Может быть это из-за того, что когда я создавал БД в Acess я поставил сначение поля 'текстовое'??

Не надо плодить посты. Есть кнопка "Правка".

Последний раз редактировалось artemavd; 16.10.2010 в 20:41.
Mr.Steroid вне форума Ответить с цитированием
Старый 16.10.2010, 20:42   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Покажи полностью код и выдели ту строку, где ошибка выдается.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 20:45   #15
Mr.Steroid
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 52
По умолчанию

Код:
procedure TForm5.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s : string;
  begin
       datasource1.DataSet:=ADOQuery1;
      if ADOQuery1.Active then ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
   if RadioGroup1.ItemIndex=3 then

   В ЭТОЙ СТРОКЕ ОШИБКА// S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' = '+QuotedStr(StrToInt(Edit1.Text))+' Order By №'
 else

  S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' like '+#39+Edit1.Text+'%'+#39+'Order By Фамилия';
  ADOQuery1.SQL.Add(S);
  ADOQuery1.Open;
  end;
[Error] Unit5.pas(117): Incompatible types: 'String' and 'Integer'
Mr.Steroid вне форума Ответить с цитированием
Старый 16.10.2010, 20:56   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

А если так:
Код:
procedure TForm5.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s : string;
  begin
   if RadioGroup1.ItemIndex=3 then
      datasource1.DataSet:=ADOQuery1;
      ADOQuery1.Active:=False;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Text:='Select * From Таблица1 Where ' like '+#39+Edit1.Text+'%'+#39+'Order By Фамилия';
      ADOQuery1.Active:=True;
  end;
Дайте еще раз точную формулировку задачи.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 20:59   #17
Mr.Steroid
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 52
По умолчанию

Вобщем есть поля строковые а есть числовые! Я организую по ним поиск! If-ом проверяю значение radiogroup, зарание зная какой itemindex указывает на числовое поле и выполняю запрос!
Mr.Steroid вне форума Ответить с цитированием
Старый 16.10.2010, 21:05   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Сделайте все числовые поля текстовыми и попробуйте мой код.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 16.10.2010, 21:07   #19
Mr.Steroid
Пользователь
 
Регистрация: 28.09.2009
Сообщений: 52
По умолчанию

они и так все текстовые! Какой именно код попробовать?

Если писпть так:
Код:
procedure TForm5.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var s : string;
  begin
       datasource1.DataSet:=ADOQuery1;
      if ADOQuery1.Active then ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
   S:='Select * From Таблица1 Where '+RadioGroup1.Items.Strings[RadioGroup1.itemindex]+' like '+#39+Edit1.Text+'%'+#39+'Order By Фамилия';
  ADOQuery1.SQL.Add(S);
  ADOQuery1.Open;
  end;
То щшибка:
'ошибка синтаксиса(пропущен оператор) в выражении запроса 'Кол-во кирпича like'1%'''

эта ошибка возникает когда я в RadioGroup выбираю поле с числами и начинаю вводить в Edit цифры!

Последний раз редактировалось Stilet; 16.10.2010 в 21:22.
Mr.Steroid вне форума Ответить с цитированием
Старый 16.10.2010, 21:23   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'Order By Фамилия'
А пробел?
Код:
' Order By Фамилия'
Пробелы важная штука.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запросы dymych Помощь студентам 9 21.06.2010 08:38
SQL-запросы SEMEon SQL, базы данных 21 05.01.2010 09:25
SQL запросы ArcaN0id Microsoft Office Access 6 13.12.2009 19:42
SQL запросы Best Programmist Microsoft Office Access 8 03.12.2009 16:42
sql запросы wolf950 БД в Delphi 2 28.11.2008 21:26