Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Использование команды Update в LocalSQL Дельфи   Найти похожие ветки 

 
bav9 ©   (2004-03-30 11:25) [0]

Две таблицы связаны по ключевому полю. В каждой есть логические поля - в одной - Pokaz, во второй - Vyzov. Необходимо переодически, по запросу - изменять значение Pokaz в зависимости от значений самого поля Pokaz  и поля Vyzov из другой таблицы. В tQuery задал Datasource и подаю команду :
 UPDATE klients.dbf set pokaz = pokaz and :vyzov
а она мне говорит :
 Invalid use of keyword. Token: and
Та же ошибка вылезает и при использовании остальных логических операторов ( .. set pokaz = not pokaz
В этом случае как правильно использовать ВЫРАЖЕНИЯ в команде Update, в частности - логические ( и вообще, можно ли их использовать :-( ).


 
Курдль ©   (2004-03-30 11:31) [1]

Классический (ANSI) SQL не допускает выражений при INSERT и UPDATE. Возможны отклонения в конкретных реализациях (читайте мануал dBase, FoxPro, если такой еще не не рассыпался от ветхости :)
Выход - обработать выражение pokaz and vyzov на клиенте и упихать в БД при помощи ... set pokaz = :pokaz


 
bav9 ©   (2004-03-30 11:39) [2]

Обрабатывал, пихал, Комп - при большой базе - просто засыпает !
Думал, прямо ч/з Update - работа пойде быстрее. Неужели - нет выхода, и ни как нельзя работать с выражениями прямо в запросе ?


 
Reindeer Moss Eater ©   (2004-03-30 11:51) [3]

UPDATE klients.dbf set pokaz = pokaz and :vyzov

а где where если есть and?


 
Курдль ©   (2004-03-30 12:09) [4]


> bav9 ©   (30.03.04 11:39) [2]
> Обрабатывал, пихал, Комп - при большой базе - просто засыпает
> !


Это не Ваша проблема. Точнее, это проблема в Вашем выборе СУБД.

Попробуйте, съест ли "dBase, FoxPro" это:

if TABLE1.POKAZ and TABLE2.VIZOV TABLE1.POKAZ
 then update TABLE1 set POKAZ = True
 else update TABLE1 set POKAZ = False
end if


 
Курдль ©   (2004-03-30 12:10) [5]

Поправочка:if TABLE1.POKAZ and TABLE2.VIZOV
then update TABLE1 set POKAZ = True
else update TABLE1 set POKAZ = False
end if



 
bav9 ©   (2004-03-30 13:00) [6]

может, dBase, Foxpro - и съест, а вот Delphi LocalSQL - не хочет. Перефразирую вопрос : можно ли в запросах tQuery указывать вычисляемые ЛОГИЧЕСКИЕ поля ? типа Select (klients.pokaz and vseoch.vyzov) as mmm from klients inner join vseoch on (klients.nch=vseoch.nch)


 
bav9 ©   (2004-03-30 14:29) [7]

ждитте оттветта ..


 
bav9 ©   (2004-03-30 16:55) [8]

Если использовать два tQuery - в одном - собирать значения : nch (код), pokaz, vyzov - а потом делать UPDATE во втором запросе, используя первый - то обновляется почему -то только первая найденная в первом запросе запись. Первый запрос :     "select klients.nch,klients.pokaz as mm1,vseoch.vyzov as mm2 from klients inner join vseoch on (klients.nch=vseoch.nch) where klients.pokaz=true or vseoch.vyzov=false"
Второй запрос : UPDATE klients.dbf set pokaz=true where nch=:nch"
Запросы связаны ч/з Datasource. ПОЧЕМУ ???


 
bav9 ©   (2004-03-30 19:10) [9]

Никто не сталкивался с такой проблемой ? НЕ ПОВЕРЮ ! Есть же способ ??? Поделитесь, плз, военной тайной !!!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.051 c
1-1081253872
infom
2004-04-06 16:17
2004.04.25
Поиск


1-1081418478
ЧупаЧупс
2004-04-08 14:01
2004.04.25
Критическая ошибка


8-1074750944
DNS
2004-01-22 08:55
2004.04.25
EXE (RAD Video Tools) + Delphi???


11-1065432905
chuckloon
2003-10-06 13:35
2004.04.25
Bitmap и EMF


6-1077813783
Awod
2004-02-26 19:43
2004.04.25
Фильтрация почтовых сообщений





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский