Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
ВнизУсловие в SQL запросе: or <--> and Найти похожие ветки
← →
GHT (2008-03-23 18:30) [0]Подскажите, пожалуйста:
хочу дополнить sql запрос условием (в поле DataOtk пусто или равно 01.01.2008), - нужно ли заключать в скобки? как правиль но написать:
+" AND DataOtk IS NULL OR DataOtk=:MDat"
и как явным образом в запросе прописать дату? вместо MDat?
← →
Сергей М. © (2008-03-23 18:54) [1]Все зависит от конкретной СУБД, каковую ты обозначить не удосужился.
Но скобки, как правило, нужны.
← →
DrPass © (2008-03-23 23:14) [2]
> нужно ли заключать в скобки
А ты попробуй. Не бойся, он тебя не укусит и винт не отформатирует, даже если ошибешься
> как явным образом в запросе прописать дату? вместо MDat?
Зависит от региональных настроек твоего сервера.
← →
Anatoly Podgoretsky © (2008-03-24 00:38) [3]И надо и нет, зависит от сервера и от логики.
← →
Германн © (2008-03-24 00:44) [4]
> Anatoly Podgoretsky © (24.03.08 00:38) [3]
Если ты про скобки, то чаще всего надо. Но, как правило, лишь самому программисту для "наглядности". При необходимости последующего изменения кода это полезно.
← →
Anatoly Podgoretsky © (2008-03-24 00:53) [5]> Германн (24.03.2008 00:44:04) [4]
Не скажи, например - a and b or c, это или (a and b) or c, или a and (b or c)
результаты то разные
← →
Германн © (2008-03-24 01:03) [6]
> Anatoly Podgoretsky © (24.03.08 00:53) [5]
Я же не о таких вариантах, когда обязательны скобки. Я о таких, когда они и не нужны. Но просто наглядно показывают отдельные сравнения.
← →
GHT (2008-03-24 14:46) [7]Использую я: ADO + Access
Запрос у меня заканчивается:... where NM=:NM"+
и как, соответственно, мне дополнить его:+" AND DataOtk IS NULL OR DataOtk=:MDat"
???
← →
GHT (2008-03-24 14:49) [8]Раньше было:
" where DataOtk IS NULL OR DataOtk=:MDat"
я и горя не знал,
а теперь как на языке SQL написать:... where (NM=:NM) AND (DataOtk IS NULL OR DataOtk=:MDat)"
?
← →
Ega23 © (2008-03-24 15:04) [9]Не знаю как в Access, для MSSQL я бы написал
Declare @DataOtk datetime;
Set @DataOtk=:MDat;
Select .... where (NM=:NM) and (@DataOtk is null or DataOtk=@DataOtk)
← →
sniknik © (2008-03-24 15:15) [10]> Не знаю как в Access, для MSSQL я бы написал
не поддерживает пакетов... не получится.
можно так например, аналогSelect .... where (NM=:NM) and (:DatCheck=1 or DataOtk=:DataOtk)
смысл думаю понятен.
← →
sniknik © (2008-03-24 15:23) [11]+ ошибка наверное будет... при определении параметра. если будет надо пробел поставить ->
:DatCheck =1
← →
Ega23 © (2008-03-24 15:52) [12]
> sniknik © (24.03.08 15:23) [11]
А что параметром считается? То, что после "равно" ("больше", "меньше") и пробела?
← →
sniknik © (2008-03-24 15:58) [13]> А что параметром считается? То, что после "равно" ("больше", "меньше") и пробела?
а вот и не уверен..., потому и написал "наверное", а может и поймет...
а с пробелом наверняка правильно определит.
← →
Anatoly Podgoretsky © (2008-03-24 20:29) [14]Акцесс штучка такая, я бы не рисковал а написал бы так A = :P
Пробелы до и после, иначе не всегда сработает.
← →
Ega23 © (2008-03-24 22:04) [15]
> Пробелы до и после, иначе не всегда сработает.
вот оно там как-то крайне странно срабатывает...
Вообще есть где-нибудь чёткое описание того, что будет являеться параметром при ParamCheck=True?
← →
sniknik © (2008-03-24 22:41) [16]зачем описание? если хочется просто посмотри код парсера. там не очень много кода.
разделителями имен являютсяfunction NameDelimiter: Boolean;
begin
Result := CurChar in [" ", ",", ";", ")", #13, #10];
end;
т.е. "=1" в конце, если без пробела (/другого символа из списка), точно уже, присоеденит к имени параметра, а вот перед ":" пробел необязателен.
естественно это только для ADO (что смотрел), для другого парсер может быть иным.
← →
sniknik © (2008-03-24 22:49) [17]> а вот перед ":" пробел необязателен.
это не из списка следует, а из условия в остальном коде.
кстати оттуда же следует (не знал пока не посмотрел :), что путь можно записывать в запросе так "...С::\Dir\File.ras...", а я зачем-то автоопределение всегда выключал в таком случае и создавал их ручками, ради того чтобы нужное оставить...
век живи два учись...
← →
Ega23 © (2008-03-24 22:57) [18]
> зачем описание? если хочется просто посмотри код парсера.
Так в том-то и дело: мало-ли что они завтра в коде поменяют?
А вот когда документально закреплено - тогда другое дело.
А код парсера я и сам посмотреть могу, то как раз понятно
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c