Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
1

Oraquery Поиск

31.10.2011, 08:17. Просмотров 999. Ответов 4
Метки нет (Все метки)

Всем здорова! в общем изучая oracle я начал делать тестовую прогу на Delphi! хочу произвести поиск через Oraquery вот код:

procedure TForm2.BitBtn2Click(Sender: TObject);
VAR b,a : string;
begin
b:='where';
a:='and';
Form2.Show;
Form2.BringToFront;
Form2.SetFocus;
form2.Caption:='Поиск по ФИО';
form1.OraQuery1.SQL.Clear;
form1.OraQuery1.SQL.Add('select * from dance');
if Form2.Edit1.Text<>'' then
form1.OraQuery1.SQL.Add(''+b+' name like '''+Form2.Edit1.Text+'%''');
if Form2.Edit2.Text<>'' then
form1.OraQuery1.SQL.Add(''+a+' Clubtip like '''+Form2.Edit2.Text+'%''');
if Form2.Edit3.Text<>'' then
form1.OraQuery1.SQL.Add(''+a+' Music like '''+Form2.Edit3.Text+'%''');
form1.OraQuery1.Open;
end;

она находит запись только по столбцу "Name"

помогите пожалуйста в чем ошибка!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2011, 08:17
Ответы с готовыми решениями:

ORAquery, SQL запрос
Доброго времени суток! У меня база на Oracle, связь с дельфи все отлично. Когда пишу в ORAquery...

OraQuery Delphi + Oracle Простои запрос
Ребята здравствуйте . SQL Dvelopere формирую простои запрос SELECT employee_id ||'^'||...

Передать в делфи для oraquery параметр, в качестве имени таблицы
Запрос: select * from :own.owners where owneruid=0 передаю параметр...

Просмотр запроса в OraQuery
Есть OraQuery можно ли посмотреть исполняющийся запрос? Т.е. запрос с параметрами вроде все...

4
567 / 290 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
31.10.2011, 08:25 2
хочу произвести поиск через Oraquery
Ну это хорошо.
Вот только не совсем понятно по каким параметрам вы хотите искать.
Точнее у вас не получается искать по одному из указанных параметров, по 2 или более параметрам?
Блин и вот ну хоть убей я не вижу в твоем коде оператор WHERE.
1
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
31.10.2011, 08:33  [ТС] 3
b:='where'
я ставлю её перед 'name' вот типа так '+b+'
0
567 / 290 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
31.10.2011, 09:31 4
Точно не заметил. Извиняюсь.
Ты знаешь я вот для человека писал процедуру.
Может и тебе поможет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    flds : array[1..3] of string=('Fullname','Course', 'Sex');
    pars : array of string;
 
function GetSQLText(par1,par2, par3:string):string;
var SQL:TStrings;
    i, j : integer;
begin
  try
    SetLength(pars,4);
    pars[1] := par1;
    pars[2] := par2;
    pars[3] := par3;
    SQL:=TStringList.Create;
    SQL.Clear;
    j := 0;
    SQL.Add('SELECT *, strftime(' + QuotedStr('%Y') + ',Birthday) as year FROM _uchenik_ ');
    for i := 1 to Length(flds) do
    begin
      if Length(trim(pars[i])) > 0 then
      begin
        if j = 0 then SQL.Add('WHERE')
        else SQL.Add('AND');
        SQL.Add(flds[i] + ' = ' + QuotedStr(pars[i]));
        j := 1;
      end;
    end;
    SQL.SaveToFile('sql.txt');
    Result:=SQL.Text;
  finally
    SQL.Free;
  end;
end;
Смысл процедуры в том, что можно искать по неогранниченному количеству параметров.
Надор полей по которым будет производиться поиск находится в массиве flds.
А набор параметров в массиве pars.
Между 2 массивами четкое соответствие. Т.е. flds[i] = pars[i].
Пары поле - значение.
0
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
31.10.2011, 10:23  [ТС] 5
спасибо друг! разобрался со своим кодом
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2011, 10:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не работает параметр в OraQuery
Здравствуйте, имеются параметры, которые отвечают за выборку даты. select ... From ... Where...

QRegExp поиск всех строк которые соответствуют шаблону и поиск их длины
//поиск строк типа ] QRegExp reg(&quot;\\\\]&quot;); QString text = &quot;test ] bla ]&quot;; int pos =...

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE `marka` LIKE '%&quot; ....

Поиск символа в строке. Как осуществить поиск в обратном направлении
Всем доброго времени суток. Вопрос такой: как осуществить поиск в обратном направлении, т.е. я в...


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

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

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