
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.02.2007, 18:52
|
|||
|---|---|---|---|
|
|||
Преобразование типа в ODBC. Как отключить? |
|||
|
#18+
Доброго времени суток всем! Есть клиент-серверная архитектура вида: VFP6 <-> ODBC <-> PostgreSQL (Linux) На PostgreSQL имеется таблица с необходимыми индексами следующего вида: CREATE TABLE проводки ( КОД SERIAL, * * * ДОККОД INT NOT NULL, * * * ); На VFP6 создан параметризованный просмотр, имеющий к примеру следующий код: SELECT * FROM проводки WHERE ДОККОД=?pnDocNum Обращение к данным на PostgreSQL сервер происходит по команде: pnDocNum = 1234 && Определяем код конкретного документа REQUERY() На сервер поступает такой запрос: SELECT * FROM проводки WHERE ДОККОД='1234'::float8 Запрос выполняется очень долго, т.к. где-то в глубинах VFP6 или драйвера ODBC происходит преобразование типа константы 1234 к типу float8, что как я думаю вызывает преобразование значений ДОККОД из типа INT в тип float8 в таблице <проводки> в момент выполнения запроса. А если выполнить на сервере запрос SELECT * FROM проводки WHERE ДОККОД=1234, то он выполняется мгновенно. Как убрать это преобразование констант к типу float8? Заранее всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.02.2007, 14:36
|
|||
|---|---|---|---|
Преобразование типа в ODBC. Как отключить? |
|||
|
#18+
Через параметр числовые данные ВСЕГДА конвертируются в числа с плавающей точкой. Если необходимо явно передать целочисленное значение или число с фиксированным положением точки, то придется отказаться от параметра и формировать текст запроса явно. Код: plaintext 1. 2. Или же использовать явные команды конвертации самого сервера. Не знаю, есть ли такие в PostgreSQL, но в синтаксисе FoxPro это нечто вроде Код: plaintext Преобразование в действительный тип данных не может являтся причиной замедления выполнения запроса. Однако это может являться причиной некорректной обработки (выборки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2007, 09:14
|
|||
|---|---|---|---|
|
|||
Преобразование типа в ODBC. Как отключить? |
|||
|
#18+
ВладимирМЧерез параметр числовые данные ВСЕГДА конвертируются в числа с плавающей точкой. Где об этом почитать можно? Мне надо доку нужным людям под нос подсунуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2007, 10:36
|
|||
|---|---|---|---|
Преобразование типа в ODBC. Как отключить? |
|||
|
#18+
Kruchinin Pahan ВладимирМЧерез параметр числовые данные ВСЕГДА конвертируются в числа с плавающей точкой. Где об этом почитать можно? Мне надо доку нужным людям под нос подсунуть. Нигде. Это было обнаружено опытным путем. Правда, для MS SQL http://forum.foxclub.ru/read.php?29,144755,144755#msg-144755 Но, судя по вопросу, это касается и PostgreSQL Возможно, что-то на эту тему есть в описании собственно ODBC драйвера. Там должно быть написано во что (в какое представление) он конвертирует числовые данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=seba89&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 635ms |
| total: | 770ms |

| 0 / 0 |
