MS SQL Server для C++ Builder 6.0
Какие компоненты для этого можно использовать? В чем плюсы и минусы тех или иных вариантов? Какой вариант даст максимальное быстродействие и стабильность?
Подскажите пожалуйста варианты, организации взаимодействия БД MS SQL Server с приложением разрабатываемым на 6м Builder.
Какие компоненты для этого можно использовать? В чем плюсы и минусы тех или иных вариантов? Какой вариант даст максимальное быстродействие и стабильность?
Максимальное быстродействие и к сожалению максимальную глючность даст BDE. ADO работает медленнее, зато более правильно. Есть еще компонента SDAC (SQLServer Direct Access) очень приятная и приличная во всех отношениях, но к сожалению платная.
Теперь подробнее о некоторых недостатках:
1. BDE может работать с сервером как через свой драйвер, так и через ODBC, но требует наличия BDE на компьютере, откуда запускается приложение. Т.е. в сети на каждую рабочую станцию тащи БДЕ.
2. БДЕ неправильно обрабатывает типы данных определенных пользователем. В частности nvarchar
3. БДЕ не понимает индексы SQL сервера.
4. При использовании таблиц и dbgrid буывают глюки с удвоением строк таблиц на экране при использовании фильтров.
5. ADO инициализируется гораздо медленнее.
6. ADO не отслеживает правильно некоторые типы relation и в связи с этим имеет проблемы при прямом добавлении или удалении записей из таблиц.
7. Для отслеживания изменений в таблицах базы с ADO нужно повозиться и не всегда это вожможно. Единственный точно работающий способ этто Close(); Open();, но это плохо.
Это то, что смог вспонить на вскидку.
1) В 6м пункте - "проблемы при прямом добавлении или удалении записей из таблиц": интересно что за проблемы?
2) Как то все же возможно организовать отслеживание изменений в АДО? Именно этот вопрос наиболее остро стоит для разработки.
3) Нет ли проблем при работе с бинарными данными?
Спасибо за столь скорый ответ! Я все более склоняюсь к АДО, но вот несколько встречных вопросов:
1) В 6м пункте - "проблемы при прямом добавлении или удалении записей из таблиц": интересно что за проблемы?
2) Как то все же возможно организовать отслеживание изменений в АДО? Именно этот вопрос наиболее остро стоит для разработки.
3) Нет ли проблем при работе с бинарными данными?
У меня с Blob полями проблем не было. По поводу 6 пункта была такая проблема:
В dbgrid добавляю запись в таблицу. Все добавляется, но сама запись после добавления физически в БД присутствует, а в dbgrid ее нет. С чем это связано так и не понял. Последовательность Table1->Close(); Table1->Open(); решила это проблему. Но этто очень не изящно и понятно, что просто где-то, что-то не доделал.
У меня с Blob полями проблем не было. По поводу 6 пункта была такая проблема:
В dbgrid добавляю запись в таблицу. Все добавляется, но сама запись после добавления физически в БД присутствует, а в dbgrid ее нет. С чем это связано так и не понял. Последовательность Table1->Close(); Table1->Open(); решила это проблему. Но этто очень не изящно и понятно, что просто где-то, что-то не доделал.
та же самая фигня!!!! в dbgrid не отражаются только что добавленные данные.приходится разрывать connection и восстанавливать его заново. Но на мой взгляд ADO всё таки лучше, хоть я и новичок в builder.