Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в MS Access одним запросом модифицировать или добавить строку


Погроммист ©   (2016-03-21 00:17:00) 


UpQuery := 'UPDATE BasesSettTab SET BaseName=' + QuotedStr(pNewBaseName) + ' WHERE BaseName = ' + QuotedStr(pBaseName);
 
 InQuery := '(INSERT INTO BasesSettTab (BaseName,PathToBase,FileName)' + ' VALUES (' +
   QuotedStr(pBaseName) + ' , ' + QuotedStr(pPathToBase)+ ' , ' + QuotedStr(pFileName) + '))';

   temp := 'SELECT iif (SELECT Count(*) FROM BasesSettTab where BaseName = '
    + QuotedStr(pBaseName) + ') > 0,'+ UpQuery + ',' + InQuery +  'from BasesSettTab);';


первая проблема в том, что запрос начинающийся с iif аксес принимать отказывается, поэтому я приписал select но думаю что это неправильно...

Вторая проблема то что на первую он еще и не ругается, а ругается он на UpQuery говоря о том, что там пропущен какой то оператор...но по мне так там все на месте. Итого вопрос, можно ли одним запросом такое провернуть в аксесе и как?


эндсоувот   (2016-03-21 08:53:00) [1]

iif это не иф-зен-елс

это вилка на два значения, а не развилка выполнения
iif ( condition, value_if_true, value_if_false )


sniknik   (2016-03-21 08:52:00) [2]

access принципиально не поддерживает пакеты команд, только одиночные (даже в "процедурах"), и не функции (типа iif) вместо sql команды. и команды обедняющие 2 либо "спец" как в mysql либо megre как в mssql тоже нет.
делай выводы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо