Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL: изменить если существует или добавить новую, помогите с запросом плз. 
:(
    Опции темы
Ibragim
Дата 18.3.2007, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Ночи доброй.
Помогите плз. кому не лень с таким вопросом.

Условие. 
- БД MySql, доступ через Zeos-компоненты (Если точно, ZQuery)
- поле Field1 в базе - индекс, уникальная строка
- есть также другие поля разных типов

- пользователь создает (пока еще не подключаясь к базе) еще несколько записей (ввел данные, скажем, в TStringGrid)

Необходимо:
- для записей, Field1 которых равен вновь введеному Field1, изменить все остальные поля на вновь введеннные
- если существующей записи с таким значением Field1 нет в базе, то добавить запись со значениями, равными введенным

Дополнительно: очень хотелось бы делать это SQL-запросом(ами), но если задача решается свойствами ZQuery лучше - посоветуйте как.

Заранее спс.
PM MAIL   Вверх
pavelv
Дата 18.3.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



не знаком с 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;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.