![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Пытаюсь решить следующий вопрос, есть база данных Access data.mdb, в этой базе находится N-е кол-во таблиц (одинаковых по структуре). Необходимо произвести поиск по всем таблицам (по фамилии) и выдать результат в ADOQuery. Написал код:
Код: Код:
datasource1.dataset:=AdoQuery1;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
with ADOQuery1.SQL do begin
Add('SELECT * FROM MASTER where Name like ''' +'%'+Edit2.Text + '%''');
Add(' UNION ');
Add('SELECT * FROM COFF where Name like ''' +'%'+Edit2.Text + '%''');
Add(' UNION ');
Add('SELECT * FROM 2OFF where Name like ''' +'%'+Edit2.Text + '%''');
Add(' UNION ');
Add('SELECT * FROM 3OFF where Name like ''' +'%'+Edit2.Text + '%''');
Add(' UNION ');
Add('SELECT * FROM CENG where Name like ''' +'%'+Edit2.Text + '%''');
Add(' UNION ');
Add('SELECT * FROM 2ENG where Name like ''' +'%'+Edit2.Text + '%''');
end;
ADOQuery1.Open;Поиск работает корректно, однако при внесении изменений в сформировавшуюся таблицу появляется ошибка: ![]() |
|
#2
|
|||
|
|||
|
Все правильно. Она (оно) просто не может определить какую таблицу ты хочешь обновить. Вообще, обновление по результату сложных запросов не работает в 99% случаев. Делай обновление "руками".
|
|
#3
|
||||
|
||||
|
Цитата:
А как помочь определить? Обновление руками - подскажите хоть примерно |
|
#4
|
||||
|
||||
|
В результате запроса формируется у вас не таблица а виртуальный набор данных. У вашего набора должны быть два поля которые однозначно определяют исходную таблицу и идентификатор записи в этой таблице. Тогда используя эти сведения из текущей записи можно выполнить отдельно запрос на изменение уже в конкретной таблице, но на текущий виртуальный набор данных это никак не повлияет, надо будет решать еще и эту проблему.
Имейте ввиду, что если вы не используете ключевого слова ALL в UNION у вас будет сформирован уникальный набор данных, из которого будут исключены все повторяющиеся записи. |
|
#5
|
||||
|
||||
|
Цитата:
Так все-таки как это реализовать? Есть ли у Вас примерчик глянуть? |