C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
InterBase
** Andrey
Отправлено: 11.10.2004, 19:35


Не зарегистрирован







Здравствуйте уважаемые Люди.
У меня ни Х не получается с этими БД. Пробовал с:
Access — не понравилась с размерами таблиц информацию объемом 1 М/Байт раздул до 600 М/Байт там было 3000 тыс.записей.
MySQL — все круто работает но только через MYDACC который позволяет работать только при открытом компиляторе Builder. Как компилиш прогу не дает но это по лицензии.
Закачал MyODBC-standard-3.51.9-win — толи не могу настроить толи что не так. НЕРАБОТАЕТ.
*********************************************
InterBase 4 — тока разобрался с подключением как пробую писать через SQL данные в таблицу поля типа Integer, Char. Пишет все нормально. Но тут дело доходит до занесения информации в поля типа Blob. И он не хороший пишет мне (
Project IB.exe raised exception class EIBInterBaseError with message ‘conversion error from string “BLOB”’. Process stopped. Use Step or Run to continue/
)
Запрос следующего формата: (
INSERT INTO bd_2(NUM,MODEL,VOPROSMIN,VOPROSMAX,INFO) VALUES(1,'наименование модели ','полное наименование',' вопрос по данной модели в полной форме', ' информация о модели')
)
*************************************************
Пожалуйста подскажите, что по InterBase 4 этот Волчара от меня хочет. Буду очень благодарен.
olegenty
Отправлено: 13.10.2004, 06:38


Ветеран

Группа: Модератор
Сообщений: 2412



возми Firebrd 1.5.1 с firebird.sourceforge.net — бесплатная СУБД на 3 поколения старше Interbase 4 и основанная на его коде.

для доступа пользуйся IBX либо FIBPlus (скачать можно с devrace.com, для русских компоненты стоят 700р, если не покупать, функционируют нормально, но при запуске говорят "спасибо за оценку, зарегистрируйтесь").

** pasha
Отправлено: 13.10.2004, 11:44


Не зарегистрирован







Купите книгу "Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil" А.Ковязин, С.Востриков (Изд. "Кудиц-Образ") 2002
и прочитайте как работать в InterBase с BLOB-полями.

Примеры можете посмотреть в поиске по форуму
по слову BLOB
а в общих словах: для присвоения значения BLOB-параметру
необходимо использовать потоки (специализированные потомки
стандартного класса TStream )

Например, запихнем файл в BLOB-поле BLOBField таблицы Table1
CODE

if(OpenDialog1->Execute()){
Table1->Append();
TMemoryStream *pMS = new TMemoryStream;
pMS->LoadFromFile(OpenDialog1->FileName);
Table1BLOBFiled->LoadFromStream(pMS);
Table1->Post();
delete pMS;
}


или смотрите пример в книге.



** Andrey
Отправлено: 14.10.2004, 19:54


Не зарегистрирован







А как в SQL запросе это написать
Следующего содержания:
***********************
INSERT INTO bd_2(NUM,MODEL,VOPROSMIN,VOPROSMAX,INFO) VALUES(1,'наименование модели ','полное наименование',' вопрос по данной модели в полной форме', ' информация о модели')
***********************
допустим поле INFO типа BLOB
** Andrey
Отправлено: 14.10.2004, 19:55


Не зарегистрирован







А как в SQL запросе это написать
Следующего содержания:
***********************
INSERT INTO bd_2(NUM,MODEL,VOPROSMIN,VOPROSMAX,INFO) VALUES(1,'наименование модели ','полное наименование',' вопрос по данной модели в полной форме', ' информация о модели')
***********************
допустим поле INFO типа BLOB
olegenty
Отправлено: 18.10.2004, 08:54


Ветеран

Группа: Модератор
Сообщений: 2412



SQL
INSERT INTO bd_2( NUM,
MODEL,
VOPROSMIN,
VOPROSMAX,
INFO)
VALUES(
:IN_NUM,
:IN_MODEL,
:IN_NAME,
:IN_QUESTION,
:IN_INFO);


а дальше — как **pasha писал...
CODE

...
TMemoryStream *pMS = new TMemoryStream;
pMS->LoadFromFile(OpenDialog1->FileName);
...->ParamByName("IN_INFO")->LoadFromStream(pMS);
...->ExecQuery();
delete pMS;
...

Вернуться в Работа с базами данных в C++Builder