Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Уважаемые гуру! Я только недавно начал программировать на Delphi. И сейчас у меня есть такой к вам вопрос. Как в одной программе работать с БД, находящимися в разных форматах. Т.е. на работе база находится на MS SQL Server а дома в mdb. Доступ к данным организован с помощью ADO. Подключение к нужной базе меняю с помощью udl файла (есть два заранее заготовленных файла и рабочий, с помощью которого и идет подключение). Все работает нормально, НО когда в запросе встречается дата, тогда происходит ошибка в программе. Запрос неважно какой, например: Код: plaintext Данный запрос нормально отрабатывает в SQL Server но не работает с mdb. Подскажите универсальное решение, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 10:38 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
в конструкции where лучше использовать date1 between '01.01.2003' AND '16.02.2003' А чтоб универсально было скорее всего надоиспользовать параметры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 10:44 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
AndreyBond: "в конструкции where лучше использовать date1 between '01.01.2003' AND '16.02.2003' А чтоб универсально было скорее всего надоиспользовать параметры..." "Between" или сравнение, это не принципиально... :) Даже если написать так: Код: plaintext 1. Код: plaintext 1. 2. Вопрос как сделать это в принципе? А если нужна будет третья база в dbf? (Нужно делать импорт из программы написанной давно на Clipper)? Создам udl файл, и запрос на нем тоже не будет выполнятся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 10:58 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
> А если нужна будет третья база в dbf? А не суть... SQL достаточно стандартизирован. А писать надо так (на примере Query это запрос): Код: plaintext 1. 2. 3. ну и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 11:21 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. :) Именно так я и писал... И именно так не работает :( . Вернее работает только с SQL server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 11:55 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Наверно - беда в формате даты. Попробуй варианты: '16-01-2003', '2003-01-16'... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:12 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Посмотрите формат даты в Windows: Пуск->Настройка->Панель управления->Язык и стандарты->Дата->Краткий формат. Задавайте дату в формате, настроенном в Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:17 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Побробуй AsDateTime ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:29 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
В панели управления Краткая дата - "23.07.2003". Задаю дату именно в этом формате... Поменял формат даты на такой - "16/01/2003" (ММ/ДД/ГГГГ) Заработало с mdb, не работает с SQL Server :) Придется видимо, как-то определять к чему подключаемся и соотв. менять sql-строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:30 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
такое уже обсуждалось много раз. и ответ всегда один: все из-за различного фомата даты в NT4, W98,W2000. в 2000-ой 4 цифры в году, в остальных две. все баги именно при конвертировании из строки и обратно. отсюда решение: строкой дату задавать нельзя ! брать либо из DateTimePickera, либо другого какого компонента, либо Date(), либо еще чего. И только затем присваивать параметру именно как TDate или TDateTime, но ни в коем случае не строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:03 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Странно, все варианты испробовал, заработало и там и там только вот так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:31 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Провел некоторые эксперименты с разными ADO провайдерами. Запрос нормально отрабатывает, если в свойствах соединения с SQL Server стоит русский язык. Если стоит английский, то запрос не работает! Поэтому использую Код: plaintext Спасибо всем за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 06:12 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. параметрам прописать тип TDateTime и все будет работать замечательно под любой коннект, под любой ОС и любом языке. НУ СКОЛЬКО МОЖНО ПОВТОРЯТЬ: НЕЛЬЗЯ В СТРОКУ КОНВЕРТИТЬ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 06:16 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Может и нельзя, но если конвертить в строку всё работает правельно, а вот если в дату конвертить, то аксекс понимает дату, например 02.07.2003, как 7 февраля 2003 года, а не так как мы её понимаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 09:48 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
mdb - для него действую только Regional Settings на твоей машине SQLServer - для него правила определяют 1. Regional Settings на машине клиента определяют формат даты как ее будет трактовать клиент - т.е. если стоит mm/dd/yy - то все что посылается и принимается будет анализироваться и восприниматься по этому шаблону 2. Login Language - для каждого логина на сервере можно установить язык логина - он определяет как будет воспринимать данные от клиента сервер. Проверьте одинаковы ли он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 10:36 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
> AndreyBond Nu ne savsem tak. Ja rabotaju i s mdb i s MS SQL i pri peredache dati parametrom s tipom data - vse rabotajet normalno. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 10:44 |
|
||
|
Работа с датой в таблицах SQL Server и mdb
|
|||
|---|---|---|---|
|
#18+
Ну не знаю, у меня JDE, которое в делфи 5, не хочет дату правельно трактовать :-(( Тебе значит повезло, а мне или не повезло или руки кривые.. :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 12:28 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2117581]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 415ms |

| 0 / 0 |
