|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
У меня вопрос! Есть софт, стучится к ACCESS через ODBC! Софт использует СRecordset::Open из MFC! Но это так лирическое отступление.... А проблема в том что АССESS дату в SQL запросе воспринимает в виде #01/31/2005# а вот SQL Server хочет '01/31/2005' Можно ли заставить работать программу c любой СУБД не меняя SQL запрос и не перекомпилируя программу? Последнее что мне приходит в голову использовать параметры... со всеми вытекающми... Надо еще глянуть через какую ж... это реализовано в MFC! Вообщем хочется вопрос решить на уровне текста запроса или базы данных... Очень важно и срочно.... Жду любых соображений!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 05:33 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
Их бин нихт большой спец в SQL сервере, но мне кажется, что он может принимать дату в любом формате - только надо указать при дате, чтО это за формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 10:28 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
А вообще язык SQL действительно имеет разные версии, в том числе есть много (больше одного) различий между Аксессом и SQL сервером. И от этого никуда не попишешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 10:29 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
>#01/31/2005# Это похоже на консантанту VBA типа Date Если вам повезло и СRecordset::Open из MFC передает ее в звпрос как строку а уже само ядро Jet преобразует ее в дату то следует избавится от # и самому позаботится о преобразовании строки в дату с помощью соотв функций в теле запроса >а вот SQL Server хочет '01/31/2005' На самом деле сервер ничего не хочет, а использует для преобразования текущие нац настройки винды в принципе строку можно преобразовать с помощью функции CONVERT или сменить на время транзкции нац настройку. но обычно , чтобы не иметь проблем с авто преобразованием передают дату на MSSQL в формате YYYYMMDD SQLDate = Format(DateF, "yyyymmdd") ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 10:47 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
блин, а я вот в течение нескольких лет и не знал ни разу - какие там форматы для кого нужны. патамушта использовал параметры, и пусть сами библиотеки ADO/DAO мучаются с конвертацией чего-то во что-то. пусть лошодь думает, у него голова большой. З.Ы. попытка " заставить работать программу c любой СУБД не меняя SQL запрос " говорит только о квалификации разработчика. либо о примитивности решаемой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 10:53 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
Это похоже на консантанту VBA типа Date Если вам повезло и СRecordset::Open из MFC передает ее в звпрос как строку а уже само ядро Jet преобразует ее в дату то следует избавится от # и самому позаботится о преобразовании строки в дату с помощью соотв функций в теле запроса Прикол в том что для Accessa можно писать DateSerial(y, m, d) SQLServer на этот DateSerial так ругнется, что в соседенй комнате аукнется! Соответсвенно Access ругнется на CONVERT! А текст запроса хочется сделать одниковым! Или я что-то не понял? Единственное, что еще приходит в глову это сделать функцию CONVERT в базе Access, может кто-нибудь знает как сделать функцию, которую можно будет использовать в выражениях? попытка "заставить работать программу c любой СУБД не меняя SQL запрос" говорит только о квалификации разработчика. либо о примитивности решаемой задачи. А мне и нужна вожможность сказать "Смотрите какая у нас чудесная программа! Хотите Acccess? Пожалуйста! Много данных? Нажимаем кнопочку и данные перенеслись в SQL Server, а мы работаем как ни в чем не бывало!" А база в принципе простая как три копейки, но из нее почти ничего не удаляется и через пару лет там такая п--- начнется, а всяких аналитических отчетов по этим данным делается много и суется это все в ворд через COM, который и так тормоз! И еще вопрос к Всемогущему Оллу как получить название (версиию) СУБД с помощбю SQL запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 21:59 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
очень очень злойА текст запроса хочется сделать одниковым! Или я что-то не понял? Уже двое ответили (я и ЛП), что в серьезных задачах это невозможно. Жалобы просьба направлять в Microsoft заказным письмом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 22:12 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
Всем большое спасибо! Если кто-нибудь знает, как функцию для выражений (expressions) сделать в Access'е поделитесь опытом! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 02:42 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
Может я не очень понял о чем речь, но, по моему, для того чтобы язык запросов был один для разных типов баз, надо просто использовать просто еще один слой, БДЕ или ДАО. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 07:09 |
|
ACCESS -> SQL Server, вопрос по совместимости...
|
|||
---|---|---|---|
#18+
>как функцию для выражений проще на TSQL обернуть CONVERT в DateSerial Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 10:43 |
|
|
Start [/forum/topic.php?fid=45&tid=1666657&gotonew=1]: |
0ms |
get settings: |
1ms |
get forum list: |
7ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
27ms |
get topic data: |
6ms |
get first new msg: |
2ms |
get forum data: |
1ms |
get page messages: |
28ms |
update_topic_read_status (1666657): 17.05.2005 02:55:42: |
0ms |
get tp. blocked users: |
1ms |
get online users: |
30ms |
check new: |
1ms |
others: | 84ms |
total: | 188ms |
0 / 0 |