
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.06.2006, 13:49
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Странная вешь получаеться. Пишу на сервак такой запрос sqlexec(sql_con,"select * from festival where data1 between 01-01-2000 and 31-12-2006","temp") select temp brow Таблица пуста!!!!!! Почему??? когда прописываю not between все есть. Какойто парадокс!! Почему так?? Еще прикол. тоже запрос но с таким условием: data1>=05-05-2006 and data1<=06-05-2006 - фильтр работает правильно и выводит записи в соответствии с запросом, НО, data1>=05-05-2006 and data1<=07(или 08)-05-2006 - выводяться записи от 05-05-2006 и пока таблица не кончиться. Фигня какая-то!!! Что не так пишу или делаю??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 14:02
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
НедоходящийЕще прикол. тоже запрос но с таким условием: data1>=05-05-2006 and data1<=06-05-2006 - фильтр работает правильно и выводит записи в соответствии с запросом, НО, data1>=05-05-2006 and data1<=07(или 08)-05-2006 - выводяться записи от 05-05-2006 и пока таблица не кончиться. Фигня какая-то!!! Что не так пишу или делаю??? А у тебя какой формат даты? DD-MM-YYYY или MM-DD-YYYY ? 07 и 08 месяц в 2006 году еще не наступил. :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 14:49
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
2 StasL С форматом все OK. Британский. DD-MM-YYYY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 14:59
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Недоходящий2 StasL С форматом все OK. Британский. DD-MM-YYYY. И на сервере и на клиенте? Кстати сервер какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 15:20
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
2 StasL на клиенте как я писал. А на серваке я незнаю как посмотреть, но все стоит по умолчанию. Просматривая записи там выводиться британский вариант. server2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 15:36
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Сделай запрос sqlexec(sql_con,"select * from festival where data1 between 01-01-2000 and 12-31-2006 ","temp") и посмотри что вернется. Формат даты на сервере может отличаться от формата на клиенте. А так как твой SELECT выполняет сервер, он выполняет его в своем формате и возвращает тебе записи, а уже твой клиент меняет формат на DD-MM-YYYY для вывода тебе на экран. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 15:39
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
А что, для сервера константы типа "дата" так прямо и пушутся как математические выражения: 05-05-2006 = 5 - 5 - 2006 = -2006 Может, их все-таки какими-либо дополнительными символами окружают? Если речь идет о MS SQL, то надо писать так: Код: plaintext Т.е. "дата" - это символьная строка формата ГГГГММДД обязательно окруженная одинарными кавычками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 17:19
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
2 StasL Пробывал - ничего. Все так же. 2 ВладимирМ Пишу по Вашему примеры выдает -1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 17:23
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
причину нашел. Работает вот так: sqlexec(sql_con,"select * from festival where data1 between '01-01-2006' and '31-12-2006' ","temp") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 19:51
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
А как выставлять формат даты на серваке? sql2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 23:19
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
select * from festival where data1 between cast('01-01-2000' as datetime) and cast('31-12-2006' as datetime) а так сервер выдает какую нибудь ошибку? а если это в интерактив SQL замутить? просто тупо так и прописать, минуя фокс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.06.2006, 23:55
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
только что проверил, на учебной базе (скрипты с www.sql-ex.ru) _connect=SQLCONNECT('ono','dba','sql') _query="select * from utb where b_datetime>='2002-05-31'" ? SQLEXEC(_connect,_query,'c_tmp') SELECT c_tmp BROWSE вроде как все работает, только фишка в том, что: на MSSQL по умолчанию даты: YYYY-MM-DD все это можно проверить в "sql query analiser" поставляется в стандартном пакете. А вот как [quote]А как выставлять формат даты на серваке? sql2000[/quote] это есть форум по MSSQL http://www.sql.ru/forum/actualtopics.aspx?bid=1 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.06.2006, 07:57
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
После соединения с сервером выдайте команду: ? SQLEXEC(_connect, 'SET DATEFORMAT DMY') После этого сервер будет понимать ваши даты в строковом виде в формате DD-MM-YYYY. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.06.2006, 16:57
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Да. Как онаписал Aleksey-K , нужно во всех запросах писать приставку датопонимания сервака и все работает чудненько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.06.2006, 02:12
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Hi Недоходящий! IMHO вместо мучения с разными форматами дат стоит использовать вместо литералов простые параметры - положив в фоксе в них настоящую дату, а не её символьное выражение. ldStart = DATE(2006,1,1) ldEnd = DATE(2006,12,31) lnRes = SQLEXEC(..., "SELECT ... WHERE data1 >=?m.ldStart AND data1<=?m.ldEnd") При этом если выполняется не одиночный запрос а много подобных (например нужно выбрать данные за другой диапазон) - то получим и очевидный выигрыш в скорости - за счёт того, что серверу не придётся постоянно выполнять анализ и оптимизацию разнообразных запросов - так запрос будет один и различны лишь параметры его вызовов... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.06.2006, 08:11
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
НедоходящийДа. Как онаписал Aleksey-K , нужно во всех запросах писать приставку датопонимания сервака и все работает чудненько. Не надо писать это во всех командах. Установки SET .... - это установки на уровне сессии. После установления соединения с сервером один раз сделайте так: Код: plaintext 1. 2. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.07.2006, 14:17
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Hi Aleksey! Это просто есть "не очень хорошо" по целому ряду причин: - Если используются удалённые представления, то вполне вероятна ситуация когда соединение устанавливатеся автоматически - при открытии представления - и ничего прописать естественно не получается (это зависит от свойства ShareConnection соединения и свойства Shared курсора и вообще от того устанавливается соединение вручную или наоборот - для SPT берётся хендл из RV). Это конечно обходится, НО если можно обойтись без этого то конечно лучше так и делать. - А если нам потребуется перейти на другую серверную платформу? Да даже банально - если завтра (в SQL 2007 или там SQL 2010) MS откажется от поддержки каких-то из этих настроек - то скорее всего придётся переписывать код - опять же лучше этого избежать, если есть такая возможность. - Опять таки не самый последний аргумент - производительность. Я в курсе про некоторые проблемы SQL Server при использовании SQLPrepare - но для других СУБД (в частности для Oracle) использование параметризованных запросов, а тем паче SQLPrepare() даёт весьма заметный выигрыш - по сравнению с "пробитыми" как константы значениями в запросах. Конечно SELECT-ы не часто выполняются "пачками" - когда запрос один и лишь параметры меняются многократно - а вот INSERT и UPDATE часто используют подобную схему (при "переносе" данных сразу всего локального курсора/таблицы на сервер). P.S. Да, ряд настроек к сожалению не победить, и приходится иногда использовать явное управление свойствами коннекции... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.07.2006, 16:28
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
Hi Igor! Какое отношение имеют установки вида SET NOCOUNT ON, SET DATEFORMAT dmy, SET XACT_ABORT ON и пр. к SQLPrepare ? Я что-то не уловил! А по поводу платформонезависимости серверного приложения (т.е. ТОЛЬКО ANSI )- так это миф. Я во всяком случае не встречал СЕРВЕРНЫЙ платформонезависимый код. А кстати, Игорь, как вы без SET .... обходитесь? Например, как устанавливаете время ожидание снятия блокировки с требуемого ресурса (SET LOCK_TIMEOUT ....)? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.07.2006, 21:17
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
2 all Подскажите пожалуйста или дайте ссылку как на машине настроить SQL SERVER 2000 чтоб к нему можно было подключиться по локалке. Мучаюсь, мучаюсь и ничего не получаеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.07.2006, 08:26
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
Вы имеете в виду настройки сервера или клиента? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2006, 00:45
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Hi Aleksey! > Какое отношение имеют установки вида SET NOCOUNT ON, SET DATEFORMAT > dmy, SET XACT_ABORT ON и пр. к SQLPrepare ? Я что-то не уловил! К SQLPrepare никакого - я про него упомянул лишь в контексте "ускорения выполнения запросов" - которое происходит так-же при отказе от жёстко прописанных в командах констант, т.е. замене их на параметры. > А по поводу платформонезависимости серверного приложения (т.е. ТОЛЬКО > ANSI )- так это миф. Я во всяком случае не встречал СЕРВЕРНЫЙ > платформонезависимый код. В простых случаях клиентский код вполне себе платформенно-независим. Конечно если он действительно прост и не представляет собой что-то более сложное чем примитивные SELECT/INSERT/UPDATE/DELETE... В принципе работа с RemoteView как раз и укладывается в такую схему - ничего сложнее этих команд RV не генерирует... > А кстати, Игорь, как вы без SET .... обходитесь? Увы, приходится таки использовать SET - для установки NLS_NUMERIC_CHARACTERS - без этого родной Oracle ODBC драйвер некорректно с дробными полями работает... Впрочем это вполне можно обойти и "снаружи" - подпихнув через переменную окружения NLS_LANG вместо CIS/RUSSIA ненавистную AMERICA ;) Тогда ODBC драйвер сам переключится на "нормальные" разделители. > Например, как устанавливаете время ожидание снятия блокировки с требуемого > ресурса (SET LOCK_TIMEOUT ....)? Это мне без нужды было - я с Oracle работаю - там рулят совсем другие принципы (он не блокировочник и проблем с блокировками там значительно меньше) - и клиентское приложение там совсем не при делах... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2006, 00:45
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
Hi Недоходящий! Какой версии? Как устанавливался? Вообще не пробовал по соседнему разделу ПОИСКом попользоваться? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2006, 02:40
|
|||
|---|---|---|---|
|
|||
запрос с датами |
|||
|
#18+
2 all SQL 2000 На клиентской машине ставлю соннектор и выставляю только протокол TCP с портом 1433. А на сервере все по дефолту и тотже протокол с тем же портом. Поиском пользуюсь до сих пор но пока что мало помогает. Проблема возникла неожиданно. Закончил программу. Прописал SQLSTRINGCONNECT как положенно. НО прога не конектиться к серваку. Пишет сервера нет или недоступен. Я замучился в настройках лазить, ниче не помагает. Пожалуйста подскажите что и как правильно надо делать чтоб заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2006, 10:40
|
|||
|---|---|---|---|
запрос с датами |
|||
|
#18+
Приведите строку подключения для SQLSTRINGCONNECT С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1591240]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
143ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 426ms |

| 0 / 0 |
