|
|
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Возник ряд траблов при переходе с dblib на OleDB. Мы работаем на MSSQL2000 SP3a & PowerBuilder 9. После вынужденного перехода на OleDb повылазили некоторые неприятные углы, коих раньше не было. Через SQL Profiler мы определили, что все datetime параметры процедур и функций при пересылки с клиента на сервер конвертируются. Было Код: plaintext Код: plaintext Если такой параметр передается в хранимую процедуру, то сервер все проглатывает. Но если параметр передается (как у нас) в пользовательскую функцию возвращающую таблицу, то возникает ошибка компиляции типа: Incorrect syntax near '{'. Подскажите какие выставить сеттинги коннекта, или что еще сделать чтобы даты не конвертировались в этот странный вид, а передавались как есть, как их написали разработчики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 09:43 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Какой OLEDB provider? SQLOLEDB ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2004, 12:43 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Провайдер OLE стандартный, тот что шел с инсталляшкой PB9.0.1 7171 + MSSQL2000 8.00.760 + MDAC2.8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 09:12 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
а точнее можно сказать? там их несколько и все стандартные. Судя по всему вы используете OLE DB Provider for ODBC (MSDASQL) а надо OLE DB Provider for SQL Server (SQLOLEDB) тогда и даты не будут конвертироваться и с номерами процедур проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 09:32 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Используем точно OLE DB Provider for SQL Server Вот параметры для коннекта: "PROVIDER='SQLOLEDB',DATASOURCE='WORK',PROVIDERSTRING='WORKDB'" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2004, 12:05 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Так никто и не победил проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 16:41 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
И уменя теже грабли :-{ PB10.2.1 MSSQL 2000 - 8.00.2040 SQLCA.DBMS = "OLE DB" SQLCA.DBParm = "PROVIDER='SQLOLEDB'" Люди добрые, подмогните кто чем знает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:03 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Guest_1Так никто и не победил проблему? Такой проблемы нет. Для начала надо установить язык пользователю us_english, если не поможет, то пробовать в DBParm установить формат даты и времени. С MSSQL в этом плане больше всего проблем, он как-то часто себя умником мнит. :) Мы жестко устанавливаем на сессию форматы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 19:03 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Oleg1Такой проблемы нет. Установил язык в логине English. На всякий случай после коннекта сделал: Код: plaintext 1. 2. Попробовал добавить формат даты Код: plaintext Ошибка: Arithmetic overflow error converting expression to data type smalldatetime. Профайлером установлено, что даты действиельно в формате yyyymmdd, но без апострофов!!! Какой надо указать формат, чтобы дата передавалась с апострофами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 12:15 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
rhs Какой надо указать формат, чтобы дата передавалась с апострофами? Мы все свели к каноническому виду, т.е yyyy-mm-dd. Для MSSQL надо выставить очередность частей даты, точно не помню как пишется. Тогда зависимости от языка не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:58 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Вот это да! Из Query Analizer выполняю Код: plaintext Ошибок нет! Результаов нет! Хотя Код: plaintext Из PB тоже не работает. 2Oleg1 Какой у вас драйвер MSSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 17:17 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
rhsВот это да! Из Query Analizer выполняю Код: plaintext Ошибок нет! Результаов нет! Может потому, что 2005-01-01 дает 2003 ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:29 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyМожет потому, что 2005-01-01 дает 2003 ? :) Да, действительно! Это Вы здорово подметили. Хотя почему нет ошибки преобразования данных? Ведь dat- smalldatetime ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:54 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
rhsХотя почему нет ошибки преобразования данных? Ведь dat- smalldatetime Наверное, отсутствующие части даты заменяются на некие значения по умолчанию. Например из текущего timestamp как в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 20:41 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
А, не, я вспомнил в Оракле не так. Сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 20:45 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
rhsВот это да! Из Query Analizer выполняю Код: plaintext Ошибок нет! Результаов нет! Для понимания достаточно выполнить Код: plaintext rhs 2Oleg1 Какой у вас драйвер MSSQL? SQLOLEDB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:48 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Oleg1Для понимания достаточно выполнить Код: plaintext Код: plaintext Код: plaintext Никогда бы не подумал ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 10:48 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Estets Код: plaintext Код: plaintext Никогда бы не подумал ;) Где-то в доках это описано. Можешь дальше пойти: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:57 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Вообщем я даже знаю как в MS SQL округлить дату к ближайшей по времени ;) Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. Правда не очень себе представляю куда это может пригодиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 17:32 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Oleg1 Мы все свели к каноническому виду, т.е yyyy-mm-dd. Для MSSQL надо выставить очередность частей даты, точно не помню как пишется. Тогда зависимости от языка не будет. Если есть возможность, воспроизведите пожалуйста полностью SQLCA.DBParm и какие SETы делаются после коннекта. Как ни бьюсь никак не работает. А используется ли в вашем приложении вызов функций, которые возвращают recordset и имеют параметр datetime? Именно с ними основной затык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 12:19 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
rhsЕсли есть возможность, воспроизведите пожалуйста полностью SQLCA.DBParmТам ничего существенного нет, кроме сервера и БД rhs и какие SETы делаются после коннекта. Как ни бьюсь никак не работает. Код: plaintext rhsА используется ли в вашем приложении вызов функций, которые возвращают recordset и имеют параметр datetime? Именно с ними основной затык.С recordset'ами мы не работаем. Параметры datetime есть, но почти все они переделаны на string еще со времен бодания с dblib. Кстати, глянув в pbole90.dll, я увидел ссылку на pbodb90.ini, но не проверял, используется он или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 19:45 |
|
||
|
Функция с датой и OleDB
|
|||
|---|---|---|---|
|
#18+
Oleg1 С recordset'ами мы не работаем. Параметры datetime есть, но почти все они переделаны на string еще со времен бодания с dblib. Тогда понятно, что у вас этих проблем нет. Я решил проблему переходом на АDO.NET Морока, конечно, устанавливать всем пользователям framework, но вроде работает, тьфу-тьфу-тьфу, тук-тук-тук... СПАСИБО ВСЕМ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 16:22 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33553051&tid=1337889]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 390ms |

| 0 / 0 |
