| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > SQL: изменить если существует или добавить новую |
| Автор: Ibragim 18.3.2007, 02:25 |
| Ночи доброй. Помогите плз. кому не лень с таким вопросом. Условие. - БД MySql, доступ через Zeos-компоненты (Если точно, ZQuery) - поле Field1 в базе - индекс, уникальная строка - есть также другие поля разных типов - пользователь создает (пока еще не подключаясь к базе) еще несколько записей (ввел данные, скажем, в TStringGrid) Необходимо: - для записей, Field1 которых равен вновь введеному Field1, изменить все остальные поля на вновь введеннные - если существующей записи с таким значением Field1 нет в базе, то добавить запись со значениями, равными введенным Дополнительно: очень хотелось бы делать это SQL-запросом(ами), но если задача решается свойствами ZQuery лучше - посоветуйте как. Заранее спс. |
| Автор: pavelv 18.3.2007, 07:46 |
| не знаком с ZQuery, но принцип думаю везде один: 1) Выбираешь все записи из таблицы у которых Field = Filed1 в ZQuery1: select * from Table1(та таблица в которой тебе надо вставить или апдейтить) where Field = Field1 2) Дальше проверяешь есть ли записи в искомом запросе, наверное что-то вроде: if ZQuery1.RecordCount> 0 then //апдейтим ZQuery1.sql.text := 'update Table1 values (Field1,*,*,*) where Field = Field1' else //вставляем ZQuery1.sql.text := 'insert into Table1 values (Field1,*,*,*)' //выполняешь запрос ZQuery1.Open; |