Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Кэширование БД через ADO под C++ / 14 сообщений из 14, страница 1 из 1
27.06.2005, 16:49
    #33136790
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Есть ли в природе библиотеки (платные/бесплатные) для кэширования баз данных через ADO? Интересует что-то подобное DataSet в ADO.NET, но под чистый ADO и С++ (пока Visual, но может и под другие компайлеры). Заранее уточню, не O/R mapper, а обратная операция — от БД к классам (рекордсетам).
В идеале, работа с лэйером должна быть прозрачная, как при работе с ADO (навигация, выборка, фильтры), но вот скорость в ..ннадцать раз быстрее.
...
Рейтинг: 0 / 0
27.06.2005, 17:19
    #33136872
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
авторИнтересует что-то подобное DataSet в ADO.NET, но под чистый ADO и С++
В каком смысле?
ADO это COM-объекты от провайдера MS. В частности DataSet это COM со всем тем что тебе надо. И от языка не зависит.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
27.06.2005, 17:48
    #33136946
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Имеется в виду, что поля таблицы БД мэппятся в структуру/класс. При открытии соединения данные из таблицы грузятся в локальный кэш объекта. Далее ты работаешь с этим объектом-кэшем. В идеале все должно быть прозрачно, т.е. ты и не подозреваешь, что работаешь не с ADO-рекордсетом, а с кэширующим классом, т.е. API во многом совпадает. В общем, хочется иметь DataSet, но не под .NET.

А насчет DataSet. Неужели можно использовать DataSet не в .NET среде? Для примера, VC++ 6.0?
...
Рейтинг: 0 / 0
27.06.2005, 18:26
    #33137015
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Имеется в виду, что поля таблицы БД мэппятся в структуру/класс.
При открытии соединения данные из таблицы грузятся в локальный кэш объекта. ========== Есть, например в Delphi классы-обёртки над COM-DataSet, но это не значит, что данные и кэш в классе. Всё в COM ). Классы помогают не знать про счётчик и интерфейсы.

Далее ты работаешь с этим объектом-кэшем. В идеале все должно быть прозрачно, т.е. ты и не подозреваешь, что работаешь не с ADO-рекордсетом, а с кэширующим классом, т.е. API во многом совпадает. В общем, хочется иметь DataSet, но не под .NET. ============= Когда нужна мне была скорость я просто создавал COM ADOCommand, давал ему SQL строку и он мне выдавал в кэше (настраиваемый!) записи в COM ADODataSet.

http://www.sql.ru/forum/actualthread.aspx?tid=26603&hl=fivaradocommand
http://www.sql.ru/forum/actualthread.aspx?tid=157357&hl=fivaradocommand
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
27.06.2005, 18:28
    #33137016
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
http://www.sql.ru/forum/actualthread.aspx?tid=153060&pg=-1&hl=fivaradocommand#1257197
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
27.06.2005, 18:36
    #33137030
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Спасибо за ответы. Но просто хочется уточнить.
Мы говорим об одном и том же? ;)
System.DataSet
...
Рейтинг: 0 / 0
28.06.2005, 10:47
    #33137592
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
DB_R&DСпасибо за ответы. Но просто хочется уточнить.
Мы говорим об одном и том же? ;)
System.DataSet
IMHO
Ты привёл ссылку на Net технологию. Мы ведь разговариваем про С++ а не про C#?
При доступе к данным через MDAC в части ADO (читать как ActixeX Data Object от MS, читать как COM объекты от MS):
- создать COM по гуид, дать ему SQL строку и получить указатель на другой COM-кэш c записями.

Быстрее у тебя не будет.
...
Рейтинг: 0 / 0
28.06.2005, 11:05
    #33137638
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Petro123 DB_R&DСпасибо за ответы. Но просто хочется уточнить.
Мы говорим об одном и том же? ;)
System.DataSet
IMHO
Ты привёл ссылку на Net технологию. Мы ведь разговариваем про С++ а не про C#?
При доступе к данным через MDAC в части ADO (читать как ActixeX Data Object от MS, читать как COM объекты от MS):
- создать COM по гуид, дать ему SQL строку и получить указатель на другой COM-кэш c записями.

Быстрее у тебя не будет.
Ок. Поясню. В ADO.NET есть классные компоненты для доступа к БД. Основное преимущество этих классов в том, что они работают, как disconnected recordset, реализую, таким образом, in-memory database. Все данные из базы находятся в памяти, физическое обращение к базе происходит только во время синхронизации. Время доступа к данным ну в миллион раз раз быстрее: в основном, время тратится только на загрузку и синхронизацию данных. Так вот интересует схожая реализация не под .NET, но под C++. Имеются проекты под Win32 на C++, необходима сверхпроизводительность.
...
Рейтинг: 0 / 0
28.06.2005, 11:28
    #33137723
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
DB_R&DОк. Поясню. В ADO.NET есть классные компоненты для доступа к БД. Основное преимущество этих классов в том, что они работают, как disconnected recordset, реализую, таким образом, in-memory database. Все данные из базы находятся в памяти, физическое обращение к базе происходит только во время синхронизации. Время доступа к данным ну в миллион раз раз быстрее: в основном, время тратится только на загрузку и синхронизацию данных. Так вот интересует схожая реализация не под .NET, но под C++. Имеются проекты под Win32 на C++, необходима сверхпроизводительность.
Тащить ВСЮ БАЗУ на клиента? Ну-ну... Сомнительное удовольствие...
А синхронизация как часто идет (раз в секунду, минуту, час, день...)? И как долго? И какие объемы данных синхронизируются (просто, если с базой одновременно работает один человек, то синхронизация - это одно, а когда 100 - тогда уже совсем другое)...
Может быть вся "сверхпроизводительность" будет съедена именно этими "задержками при загрузке и синхронизации"...
...
Рейтинг: 0 / 0
28.06.2005, 11:39
    #33137762
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Ок. Поясню. В ADO.NET есть классные компоненты для доступа к БД. ========= думаю это классы обёртки над ADO.

Основное преимущество этих классов в том, что они работают, как disconnected recordset, реализую, таким образом, in-memory database. Все данные из базы находятся в памяти, ========== Не изобретай велосипед. Не знаю как на С++ а на Delphi есть LockType = ltBatchOptimistic - пакетные изменения, но это спорный вопрос для применения.
http://www.sql.ru/forum/actualthread.aspx?tid=136797&hl=ltbatchoptimistic
http://www.sql.ru/forum/actualthread.aspx?tid=102402&hl=ltbatchoptimistic

физическое обращение к базе происходит только во время синхронизации. Время доступа к данным ну в миллион раз раз быстрее:======== враньё. И ты отходишь от клиент-серверной БД к репликациям . А это другая песня и технология.

в основном, время тратится только на загрузку и синхронизацию данных. ====== почитай либо пакетные изменения в ADO/обёртках на С++ либо репликацию между БД (SQL Server на сервере и MSDE на клиенте).

Так вот интересует схожая реализация не под .NET, но под C++. Имеются проекты под Win32 на C++, необходима сверхпроизводительность.============= у меня векторная карта СССР на миллион объектов-записей рисуется быстро по сети на клиенте. По твоему варианту я должен весь миллион на клиента перетащить а потом работать ?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
28.06.2005, 12:19
    #33137968
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Ладно. Спасибо. Мы говорим о разных вещах.
...
Рейтинг: 0 / 0
28.06.2005, 12:43
    #33138067
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
DB_R&DТак вот интересует схожая реализация не под .NET, но под C++. Ничего там супер-пупер в Net нет, кроме кроссплатформенности IMHO

Ладно. Спасибо. Мы говорим о разных вещах.
Да! Вероятно у таких настойчивых и рождаются гениальные технологии доступа к данным (без обид).

Удачи.
...
Рейтинг: 0 / 0
30.06.2005, 14:31
    #33142815
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
В качестве резюме.

В общем, классический ADO поддкрживает disconnected recordset. Во многих случаях этого достаточно. Для экстремалов (real-time) нужен таки caching layer, который вроде пока так никто не написал. :)
...
Рейтинг: 0 / 0
30.06.2005, 14:33
    #33142825
DB_R&D
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кэширование БД через ADO под C++
Да, забыл.
Petro, спасибо!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Кэширование БД через ADO под C++ / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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