Blob и ODBC

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Ната
Сообщения: 5
Зарегистрирован: 01 дек 2006, 14:06

Blob и ODBC

Сообщение Ната » 01 дек 2006, 14:56

Здравствуйте. Помогите, пожалуйста, с моей проблемой.
Написана программа на Delphi 7, база данных FB1.5, соединение с базой через ODBC.
При получении содержимого поля Blob из БД его размер усекается до 32 кБ. (Если подключаться к БД через BDE, то содержимое Blob поля берется полностью)
Версию ODBC меняла, не помогло. Работала с серверами, установленными и на Windows XP и на Unix.
Мне нужно работать через ODBC, как получить Blob поле в полном объеме?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 02 дек 2006, 00:32

помилуйте, а зачем ИЗ DELPHI соединяться с FIREBIRD через ODBC?
Извиняюсь за брутальность, но это напоминает известный анекдот про удаление гланд.

Что за ODBC, кстати? Хотя если приложение только это, и только на Delphi, от коннекта через ODBC надо избавиться как можно скорее.

http://www.ibase.ru/devinfo/choosecomp.htm

Ната
Сообщения: 5
Зарегистрирован: 01 дек 2006, 14:06

Сообщение Ната » 04 дек 2006, 13:29

Здравствуйте KDV. Большое спасибо, что Вы мне ответили. Расскажу Вам как все было с самого начала.
Что за ODBC? Firebird_ODBC_1.2.0.69-Win32, Firebird_ODBC_2.0.0-Win32 и Firebird_ODBC_2[1].0.0-Win32.
С BDE была такая история: Был настроен источник BDE. Для хранения денег сначала использовали Double Precision. Но потом выяснилось, что в связи с этим могут быть “бухгалтерские сюрпризы” и стали хранить деньги в numeric. В результате чего в полях grid(numeric) стала отображаться надпись (bytes) для форматов numeric(10.2) и более, а для форматов numeric(9.2) и менее стала отображаться только целая часть дробного числа (т.е. как integer). После настройки источника ODBC все нормализовалось. Но оказалось, что нормализовалось с numeric, а с BLOB появились проблемы.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 дек 2006, 15:41

www.ibase.ru/ibfaq.htm#bde

кстати, какие компоненты данных используются? BDE->ODBC, или
ADO->ODBC ?

Ната
Сообщения: 5
Зарегистрирован: 01 дек 2006, 14:06

Сообщение Ната » 04 дек 2006, 16:05

kdv писал(а):www.ibase.ru/ibfaq.htm#bde

кстати, какие компоненты данных используются? BDE->ODBC, или
ADO->ODBC ?
Используются BDE->ODBC

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 дек 2006, 16:16

Используются BDE->ODBC
жуть. ну вот, похоже, коннектор odbc в BDE и не дает работать с блобами больше 32к. он их, очевидно, как текстовые поля только рассматривает.

Ната
Сообщения: 5
Зарегистрирован: 01 дек 2006, 14:06

Сообщение Ната » 04 дек 2006, 16:59

kdv писал(а):
Используются BDE->ODBC
жуть. ну вот, похоже, коннектор odbc в BDE и не дает работать с блобами больше 32к. он их, очевидно, как текстовые поля только рассматривает.
Это я поняла, он их рассмотривает как longvar. Но вот если отказаться от источника ODBC, и перейти опять на источник BDE, что делать с numeric?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 дек 2006, 20:06

и перейти опять на источник BDE, что делать с numeric?
ничего. BDE умер 6 лет назад, и с тех пор не развивается. Т.е. нормально 3-ий диалект он уже не будет поддерживать никогда.

Ната
Сообщения: 5
Зарегистрирован: 01 дек 2006, 14:06

Сообщение Ната » 05 дек 2006, 14:47

Спасибо. Дело в том, что пользоваться специальными средствами доступа как IBX, FIBPlus и т.д. нет возможности, т.к. еще не совсем определились с сервером БД, есть вероятность того, что не по зависящим от меня причинам придется уходить на MS SQL или еще на что-то. Поэтому и работаем с BDE.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 05 дек 2006, 17:28

Ната писал(а):т.к. еще не совсем определились с сервером БД, есть вероятность того, что не по зависящим от меня причинам придется уходить на MS SQL или еще на что-то. Поэтому и работаем с BDE.
У нас тут тоже были такие умники. Сделали на BDE, забиваясь на "любой" сервер в будущем.
В итоге получилось, что продукт работает только с IB/FB, с другими не умеет, да так и осталась на BDE.

Ответить