|
|
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
Есть ли в природе библиотеки (платные/бесплатные) для кэширования баз данных через ADO? Интересует что-то подобное DataSet в ADO.NET, но под чистый ADO и С++ (пока Visual, но может и под другие компайлеры). Заранее уточню, не O/R mapper, а обратная операция — от БД к классам (рекордсетам). В идеале, работа с лэйером должна быть прозрачная, как при работе с ADO (навигация, выборка, фильтры), но вот скорость в ..ннадцать раз быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2005, 16:49 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
авторИнтересует что-то подобное DataSet в ADO.NET, но под чистый ADO и С++ В каком смысле? ADO это COM-объекты от провайдера MS. В частности DataSet это COM со всем тем что тебе надо. И от языка не зависит. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2005, 17:19 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
Имеется в виду, что поля таблицы БД мэппятся в структуру/класс. При открытии соединения данные из таблицы грузятся в локальный кэш объекта. Далее ты работаешь с этим объектом-кэшем. В идеале все должно быть прозрачно, т.е. ты и не подозреваешь, что работаешь не с ADO-рекордсетом, а с кэширующим классом, т.е. API во многом совпадает. В общем, хочется иметь DataSet, но не под .NET. А насчет DataSet. Неужели можно использовать DataSet не в .NET среде? Для примера, VC++ 6.0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2005, 17:48 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
Имеется в виду, что поля таблицы БД мэппятся в структуру/класс. При открытии соединения данные из таблицы грузятся в локальный кэш объекта. ========== Есть, например в 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 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2005, 18:26 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/actualthread.aspx?tid=153060&pg=-1&hl=fivaradocommand#1257197 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2005, 18:28 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
DB_R&DСпасибо за ответы. Но просто хочется уточнить. Мы говорим об одном и том же? ;) System.DataSet IMHO Ты привёл ссылку на Net технологию. Мы ведь разговариваем про С++ а не про C#? При доступе к данным через MDAC в части ADO (читать как ActixeX Data Object от MS, читать как COM объекты от MS): - создать COM по гуид, дать ему SQL строку и получить указатель на другой COM-кэш c записями. Быстрее у тебя не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 10:47 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
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++, необходима сверхпроизводительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 11:05 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
DB_R&DОк. Поясню. В ADO.NET есть классные компоненты для доступа к БД. Основное преимущество этих классов в том, что они работают, как disconnected recordset, реализую, таким образом, in-memory database. Все данные из базы находятся в памяти, физическое обращение к базе происходит только во время синхронизации. Время доступа к данным ну в миллион раз раз быстрее: в основном, время тратится только на загрузку и синхронизацию данных. Так вот интересует схожая реализация не под .NET, но под C++. Имеются проекты под Win32 на C++, необходима сверхпроизводительность. Тащить ВСЮ БАЗУ на клиента? Ну-ну... Сомнительное удовольствие... А синхронизация как часто идет (раз в секунду, минуту, час, день...)? И как долго? И какие объемы данных синхронизируются (просто, если с базой одновременно работает один человек, то синхронизация - это одно, а когда 100 - тогда уже совсем другое)... Может быть вся "сверхпроизводительность" будет съедена именно этими "задержками при загрузке и синхронизации"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 11:28 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
Ок. Поясню. В 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++, необходима сверхпроизводительность.============= у меня векторная карта СССР на миллион объектов-записей рисуется быстро по сети на клиенте. По твоему варианту я должен весь миллион на клиента перетащить а потом работать ? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 11:39 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
Ладно. Спасибо. Мы говорим о разных вещах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 12:19 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
DB_R&DТак вот интересует схожая реализация не под .NET, но под C++. Ничего там супер-пупер в Net нет, кроме кроссплатформенности IMHO Ладно. Спасибо. Мы говорим о разных вещах. Да! Вероятно у таких настойчивых и рождаются гениальные технологии доступа к данным (без обид). Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 12:43 |
|
||
|
Кэширование БД через ADO под C++
|
|||
|---|---|---|---|
|
#18+
В качестве резюме. В общем, классический ADO поддкрживает disconnected recordset. Во многих случаях этого достаточно. Для экстремалов (real-time) нужен таки caching layer, который вроде пока так никто не написал. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 14:31 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=400&tid=2033086]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 408ms |

| 0 / 0 |
