Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

и снова динамические запросы [D7, dBase, FoxPro]


Bolek ©   (2007-01-17 04:35:00) 

Пытаюсь динамически сделать запрос. Вот код:
procedure TForm2.FormCreate(Sender: TObject);
begin
   case Form1.RadioGroup1.ItemIndex of
    0:
       begin
         s := 'fio';
       end;
    1:
       begin
         s := 'group';
       end;
    2:
       begin
         s := 'born';
       end;
 end;

 Form2.Query1.Close;
 Form2.Query1.SQL.Clear;
 Form2.Query1.SQL.Add('SELECT FIO, "GROUP", BORN from ' + Form1.Table1.TableName);
 Form2.Query1.SQL.Add(' WHERE UPPER("' + s + '") LIKE UPPER' + '('+ Form1.Edit1.Text + ')');
 Form2.Query1.Open;
end;

компилятор ругается на правую скобку во второй строке. ничего не понимаю - вроде все на месте


vlad-mal   (2007-01-17 23:27:00) [1]


> компилятор ругается на правую скобку во второй строке. ничего
> не понимаю - вроде все на месте


А у меня (D7, SP1) нормально компилится.


Desdechado   (2007-01-17 11:03:00) [2]

Константин_   (17.01.07 08:15) [1]
Там все корректно. Если название поля совпадает с зарезервированным словом (а судя по коду, может - GROUP), то его берут в кавычки.

Bolek ©   (17.01.07 04:35)
Я бы заменил
Form2.Query1.SQL.Clear;
Form2.Query1.SQL.Add('

на Query1.SQL.Text:=.
А LIKE UPPER' + '('+ Form1.Edit1.Text + ')');заменил бы на
LIKE :P';
Query1.Params[0].AsString := AnsiUpperCase(Form1.Edit1.Text);

А то зачем заставлять сервер преобразовывать, если это можно сделать однократно на клиенте.


Константин_   (2007-01-17 08:15:00) [3]


>  Form2.Query1.SQL.Add(' WHERE UPPER ("' + s + '")LIKE UPPER'
> + '('+ Form1.Edit1.Text + ')');

S у тебя название поля, зачем его брать в кавычки?
Попробуй без этого.


Наверх

Титульная страница Поиск, карта сайта Написать письмо