powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres & Delphi & Ado
13 сообщений из 13, страница 1 из 1
Postgres & Delphi & Ado
    #35234671
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Амбула..., работаю Win2k Postgres 8.3.1, ODBC Postgres, AdoQuery, Delphi 7. Работаю через ADO т.к. первоначально проект был на MsSql через Ado, всё бы хорошо, но иногда напарываюсь на траблу следующего вида. Если взять какой нибудь запрос вида:
Код: plaintext
select name||' '||shortname as sn from smi
(результирующее поле есть выражение)
то, в дизайнтайме Delphi открывает его сразу, а в рантайме с задержкой в 3-8 секунд. Эта фича проявляется когда результирующее поле содержит конкатенацию или case when выражение. А если все поля просто вернуть, а потом соединить на стороне клиента, то всё ок. Преобразование типов, как
Код: plaintext
select cast((name||' '||shortname) As varchar( 50 )) as sn from smi
или подобные не спасают ситуацию. В общем не могу сделать ни одно преодразование над результирующими полями запроса на стороне сервера... Убил уже часов 6, но воз и ныне там... Мне кажется это это фича ADO, может кто сталкивался...?
Еще ни в каких в запросах не прокатывает преобразование типов через "::", сразу орет ошибка!!!
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235306
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeniorAndreАмбула..., работаю Win2k Postgres 8.3.1, ODBC Postgres, AdoQuery, Delphi 7. Работаю через ADO т.к. первоначально проект был на MsSql через Ado, всё бы хорошо, но иногда напарываюсь на траблу следующего вида. Если взять какой нибудь запрос вида:
Код: plaintext
select name||' '||shortname as sn from smi
(результирующее поле есть выражение)
то, в дизайнтайме Delphi открывает его сразу, а в рантайме с задержкой в 3-8 секунд. Эта фича проявляется когда результирующее поле содержит конкатенацию или case when выражение. А если все поля просто вернуть, а потом соединить на стороне клиента, то всё ок. Преобразование типов, как
Код: plaintext
select cast((name||' '||shortname) As varchar( 50 )) as sn from smi
или подобные не спасают ситуацию. В общем не могу сделать ни одно преодразование над результирующими полями запроса на стороне сервера... Убил уже часов 6, но воз и ныне там... Мне кажется это это фича ADO, может кто сталкивался...?
Еще ни в каких в запросах не прокатывает преобразование типов через "::", сразу орет ошибка!!!
1. Какой именно АДО Вы используете? Если драйваер ОЛЕ ДБ провайдер для Постгреса, то лучше сразу ничего не делайте, ибо драйвер кривой до невозможности.
Если всё таки ADO+OLE DB for ODBC+PostgreSQL ODBC драйвер, от уже лучше :)
2. У меня на некоторіх тормозящих запросах помогало выставление серверного курсора.
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235327
zsс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может ADO или ODBC умничают с определением метаданных? Включи на сервере вывод в лог текста запроса с временем его выполнения.
Символ ':' используется для параметров запроса, его нужно удваивать или отключить ParamCheck
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235360
Ленивец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты выбрал сложный путь - даже если с этим разберешься - возможны кучи грабель в будующем.
Посмотри по форуму - сам думаю поймешь.
Я когда-то пробовал и с ODBC и с ADO - полная фигня по крайней мере в связке с Постгресом.
Насчёт приведения типов - подумай а несвязанно ли это с тем что в дельфях всю жизнь параметры
запроса подстанавливаются через ":" ? Не думаю что ты тут что-то изменишь.
Так что это уже клиника хе-хе... 8-(\
Смотри в сторону PgDAC/ZDBO.
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235379
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛенивецСмотри в сторону PgDAC/ZDBO. +1
ZDBO использую уже 5 лет - нареканий нет. Правда, пришлось в паре мест код поменять чуток, да и сами компоненты используются только для извлечения данных из БД, так как вся абсолютно логика через хп реализована.
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235466
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечу сразу на все вопросы :)
1. Работаю через драйвера ODBC forPostgres + OleDB provider for ODBC.
2. Перевожу проект с MsSql. Проект большой (137 таблиц, а форм и того больше) и просто так поменять ADO компоненты на PgDAC/ZDBO долго, у меня нет столько времени, тем более на 70% он уже переписан на постгрю. Я планомерно доделываю переход и в существующей конфигурации всё нормально работает, меня устраивает.
3. С двоеточием я понял, действительно сразу что то не сообразил... буду удваивать.

В общем если в лоб ни кто ответа не знает, я просто обработаю на клиенте и не буду париться, т.к. время дороже, а то такая трабла попалась всего во втором запросе со всего проекта...
попробую еще действительно сменить тип курсора у ADO на серверный (сейчас проекта под рукой нету), о результатах сообщу...
Разбираться с метаданными наверное буду уже когда проект запущу в работу...
Всем большое спасибо... :)
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235490
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeniorAndreА можно узнать причину перехода на postgres?
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235507
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Деньги... Хочется легализоваться... :)
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235549
Ega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan Black SeniorAndreА можно узнать причину перехода на postgres?
Достаточно серьёзная СУБД. Кросс-платформенная. Бесплатная.
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235610
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ega Dan Black SeniorAndreА можно узнать причину перехода на postgres?
Достаточно серьёзная СУБД. Кросс-платформенная. Бесплатная.То что постгрес умеет делать, он делает хорошо. Но есть много фишек, которых у него вообще нет или они находятся в зачаточном состоянии. Конечно, если они не нужны, то постгрес - отличный вариант БД :)
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235678
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для полного счастья мне конечно не хватает... только OleDB Provider for Postgres - вообще непонятно, зачем его анонсируют на странице postgres.org, я вот только время на него истратил... Ну еще с типами и доменами поколбасился..., т.к. ODBC драйвер занимается маскарадом... для LO А по возможностям.... - их даже больше чем мне надо...
Если бы были обновляемы VIEW или UPDATE в несколько таблиц, то еще меньше времени бы истратил на переход.
В общем и целом реализовать можно ВСЁ, чем и занимаюсь...
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35235943
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeniorAndreЕсли бы были обновляемы VIEW или UPDATE в несколько таблиц, то еще меньше времени бы истратил на переход.обновляемые view можно сделать через rule
...
Рейтинг: 0 / 0
Postgres & Delphi & Ado
    #35236230
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага... уже поучаствовал я в веселье с обновляемым VIEW
www.sql.ru/forum/actualthread.aspx?tid=539196
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres & Delphi & Ado
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]