|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите ламеру с 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
|
|||
|
|||
Попробуй запрос писать в одну строчку:
Код:
FMain.ADOQuery1.SQL.Add('SELECT *' + 'FROM ИмяТаблицы' + 'WHERE ИмяПоля Like' + FMain.Edit1.Text + .....); FMain.ADOQuery1.Active:=True; |
#3
|
|||
|
|||
В смысле в одну строчку??? А какая разница???
|
#4
|
|||
|
|||
А ты попробуй )
|