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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2007, 18:49
Scooter Scooter вне форума
Прохожий
 
Регистрация: 02.07.2007
Сообщения: 18
Репутация: 10
По умолчанию Помогите ламеру с ADO Plz

Короче есть база , есть DBGrid... Есть AdoQuery... Когда программа загружаеться то в DBGride'e отображаються все записи как положено, так как в AdoQuery в свойстве SQL прописано Select * From ИмяТаблицы...

Начинаешь редактировать запись вот так:
procedure TFEditRec.Button1Click(Sender: TObject);
begin
FMain.ADOQuery1.Edit;
FMain.ADOQuery1DSDesigner3.Value:=FEditRec.LeIsp.T ext;
FMain.ADOQuery1DSDesigner4.Value:=FEditrec.Lekom.T ext;
FMain.ADOQuery1DSDesigner7.Value:=FEditRec.CBIst.I tems.Strings[CBIst.itemindex];
FMain.ADOQuery1DSDesigner8.Value:=FEditRec.CBlogo. Items.Strings[CBlogo.itemindex];
FMain.ADOQuery1DSDesigner5.Value:=FEditRec.LeGod.T ext;
FMain.ADOQuery1DSDesigner9.Value:=FEditRec.LeDop.T ext;
FMain.ADOQuery1DSDesigner10.Value:=FEditRec.CBBase .Items.Strings[CBBase.itemindex];
FMain.ADOQuery1DSDesigner11.Value:=FEditRec.CBStat us.Items.Strings[CBStatus.itemindex];
FMain.ADOQuery1.Post;
FEditRec.Close;
end;

Все нормально редактируеться , данные изменяються....

Но когда пользователю нужно сделать выборку по определённым записям вот так:

procedure TFMain.Button4Click(Sender: TObject);
begin
FMain.ADOQuery1.Active:=False;
FMain.ADOQuery1.SQL.Clear;
FMain.ADOQuery1.SQL.Add('SELECT *');
FMain.ADOQuery1.SQL.Add('FROM ИмяТаблицы');
FMain.ADOQuery1.SQL.Add('WHERE ИмяПоля Like ''' + FMain.Edit1.Text + '%''');
FMain.ADOQuery1.SQL.Add('UNION');
FMain.ADOQuery1.SQL.Add('SELECT *');
FMain.ADOQuery1.SQL.Add('FROM ИмяТаблицы');
FMain.ADOQuery1.SQL.Add('WHERE ИмяПоля Like ''The ' + FMain.Edit1.Text + '%''');
FMain.ADOQuery1.Active:=True;
End;

И потом запись найденную в выборке отредактировать c помощью вышеприведённой процедуры, выскакивает ошибка:
raised exception class EOLeException with message' Недостаточно сведений из основной таблицы для обновления'.

Ошибка выскакивает из-за вот этой SQL команды:
FMain.ADOQuery1.SQL.Add('UNION');

Понял только одно, пока шарился по просторам интернета и читал ответы форумах, что ошибка очень серьезная и связана с самой спецификацией ADO... Думаю проще обойти эту строчку, а так как в SQL я мягко говоря валенок... Вопрос такой:
Как оформить SQL запрос чтобы в DBGride отбражались записи с искомым тестом и записи с искомым текстом и с приставкой The перед ним???
Ответить с цитированием
  #2  
Старый 02.07.2007, 19:56
ilang ilang вне форума
Новичок
 
Регистрация: 11.12.2006
Сообщения: 68
Репутация: 10
По умолчанию

Попробуй запрос писать в одну строчку:

Код:
FMain.ADOQuery1.SQL.Add('SELECT *' + 'FROM ИмяТаблицы' + 
                        'WHERE ИмяПоля Like' + FMain.Edit1.Text + .....);

FMain.ADOQuery1.Active:=True;
Ответить с цитированием
  #3  
Старый 03.07.2007, 06:34
Scooter Scooter вне форума
Прохожий
 
Регистрация: 02.07.2007
Сообщения: 18
Репутация: 10
По умолчанию

В смысле в одну строчку??? А какая разница???
Ответить с цитированием
  #4  
Старый 03.07.2007, 10:14
ilang ilang вне форума
Новичок
 
Регистрация: 11.12.2006
Сообщения: 68
Репутация: 10
По умолчанию

А ты попробуй )
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter