К сожалению, локальные файлы TClientDataset не являются заменой BDE как локального механизма базы данных. По сути, они представляют собой массивы данных с памятью, способные сохранять данные на диске. Но им не хватает многих функций, которые вы можете найти в BDE. Если ваши потребности минимальны, они могут работать (вы можете определить индексы внутри свойства набора данных клиента TIndexDefs), но они могут быть не тем, что вам нужно.
Кроме того, TClientDataset не является компонентом, связанным с dbExpress. Фактически они были введены с MIDAS (позже переименованной в Datasnap) в качестве клиента (отсюда и название), аналогичного удаленному набору данных в многоуровневом приложении (возможность дискового хранилища позволяет отключать операции).
dbExpress - это уровень доступа к данным, который может работать с разными серверами баз данных через «драйверы», как это делают ODBC/BDE/OLEDB. Было принято решение иметь только однонаправленные наборы данных в dbExpress, повторно используя возможности кэширования/курсора уже существующего TClientDataset, чтобы обеспечить двунаправленный курсор и кеш. Если вы используете только TClientDataset, вы вообще не используете dbExpress, а TClientDataset может работать с любым набором данных, реализующим необходимые интерфейсы (включая BDE).
Вы должны посмотреть на альтернативы, такие как SQLite, Firebird (есть встроенная версия, если вам нужен только локальный доступ) или Postgres, если вы ищете небольшие и бесплатные движки (MySQL свободен, только если ваше приложение GPL), или есть несколько других движков, доступных из разделенных версий коммерческих (например, SQL Server Express и Oracle Express) или относительно дешевых.
Ваш конкретный вопрос не имеет смысла. Почему вы заменяете TTable на ClientDataSet? Детально, что вы пытаетесь выполнить? Считаете ли вы, что TClientDataSet является компонентом Do All для замены TTable? Вы надеялись, что TClientDataSet сделает все, что вы хотите? Никто не может догадаться, что вы хотите здесь. Возможно, образец кода? Вы использовали BDE с файлами dBase? Пожалуйста, будьте ясны. –
Я написал серию записей в блогах о преобразовании приложения BDE в dbExpress/Firebird. Вы можете посмотреть эту запись: http://nbnewman.blogspot.com/2009/09/using-dbexpress-conclusions.html –
Я сделал видеоролик о миграции BDE для Code Rage III несколько лет назад http: // learndelphi .tv/index.php? option = com_content & view = article & id = 79 – Alister