一键导入
delphi-migration-dbx-to-firedac
Diretrizes e mapeamentos de expressões regulares para migração de componentes dbExpress (DBX) para FireDAC no Delphi.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Diretrizes e mapeamentos de expressões regulares para migração de componentes dbExpress (DBX) para FireDAC no Delphi.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Diretrizes de SOLID, Clean Code e padrões de nomenclatura para classes, interfaces, métodos e variáveis em projetos Delphi.
Desenvolvimento de microserviços e APIs REST com o framework minimalista Horse em Delphi. Rotas, controllers, middlewares, gerenciamento de memória e tratamento de parâmetros.
Diretrizes de qualidade e desenvolvimento de templates HTML e páginas dinâmicas com Web Stencils (Server-Side Rendering) no Delphi.
Diretrizes e mapeamentos de expressões regulares para migração de componentes Borland Database Engine (BDE) para FireDAC no Delphi.
Diretrizes de qualidade e desenvolvimento de APIs web, ORM, injeção de dependências e testes utilizando o Dext Framework em Delphi.
Arquitetura e padrões de integração com o ecossistema ACBr (Automação Comercial Brasil) em Delphi. Desacoplamento de UI e controle fiscal.
| name | delphi-migration-dbx-to-firedac |
| description | Diretrizes e mapeamentos de expressões regulares para migração de componentes dbExpress (DBX) para FireDAC no Delphi. |
Esta skill define o guia técnico e o mapeamento de componentes, propriedades e tipos para migração de projetos Delphi baseados na tecnologia dbExpress (DBX) para o framework moderno FireDAC.
O RAD Studio inclui o utilitário de console reFind.exe (localizado na pasta bin da instalação do Delphi). Ele permite processar em lote todo o projeto, substituindo as classes, propriedades e cláusulas uses via expressões regulares.
Para rodar a migração em lote em todas as units .pas e arquivos de tela .dfm de forma recursiva, execute o prompt de comando da pasta do projeto com os caminhos corretos:
"C:\Program Files (x86)\Embarcadero\Studio\<VERSAO>\bin\reFind.exe" /s /d:*.pas /d:*.dfm "C:\Users\Public\Documents\Embarcadero\Studio\<VERSAO>\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration\FireDAC_Migrate_DBX.txt"
(Substitua <VERSAO> pela versão do Delphi instalada, por exemplo: 22.0 para o Delphi 11, 23.0 para o Delphi 12, ou 37.0 para o Delphi 13).
Ao realizar a migração manual ou revisar o resultado do reFind.exe, aplique os seguintes mapeamentos de classe:
| Classe Legada dbExpress | Nova Classe FireDAC | Unit FireDAC Necessária |
|---|---|---|
TSQLConnection | TFDConnection | FireDAC.Comp.Client, FireDAC.Stan.Intf, FireDAC.Phys.Intf, FireDAC.DBX.Migrate |
TSQLDataSet | TFDQuery | FireDAC.Comp.Client, FireDAC.Comp.DataSet |
TSQLQuery | TFDQuery | FireDAC.Comp.Client, FireDAC.Comp.DataSet, FireDAC.DApt |
TSQLTable | TFDTable | FireDAC.Comp.Client, FireDAC.Comp.DataSet |
TSQLStoredProc | TFDStoredProc | FireDAC.Comp.Client, FireDAC.Comp.DataSet, FireDAC.DApt |
TSQLBlobStream | TFDBlobStream | FireDAC.Comp.DataSet |
TAutoIncField | TFDAutoIncField | FireDAC.Comp.DataSet |
TParam | TFDParam | FireDAC.Stan.Param |
TParams | TFDParams | FireDAC.Stan.Param |
TTransactionDesc | TFDDBXTransactionDesc | FireDAC.Stan.Option, FireDAC.DBX.Migrate |
TDBXTransaction | TFDDBXTransaction | FireDAC.Stan.Option, FireDAC.DBX.Migrate |
TProcParamList | TFDDBXProcParamList | FireDAC.DBX.Migrate |
TDBXError | EFDDBEngineException | FireDAC.Stan.Error |
Muitas propriedades específicas do dbExpress não possuem representação direta e devem ser removidas, enquanto outras foram renomeadas ou reorganizadas no FireDAC.
SQLConnection → ConnectionConnectionName → ConnectionDefNameKeepConnection → ResourceOptions.KeepConnectionSQLHourGlass → ResourceOptions.SilentModeParamCheck → ResourceOptions.ParamCreateSortFieldNames → IndexFieldNamesTSQLConnection.ActiveStatements → RefCountTSQLConnection.CloseDataSets → ReleaseClients(rmDisconnect)TSQLConnection.Execute / ExecuteDirect → ExecSQLTSQLConnection.GetDefaultSchemaName → CurrentSchemaTSQLConnection.MultipleTransactionsSupported → ConnectionMetaDataIntf.TxSavepointsTSQLConnection.DBXConnection → ConnectionIntfTSQLConnection.TransactionsSupported → ConnectionMetaDataIntf.TxSupportedTSQLTable.DeleteRecords → ServerDeleteAllGetConnectionAdmin.* → FDManager.*PrepareStatement → PrepareAutoCloneLocaleCodeUniqueIDGetDriverFuncLibraryName (o FireDAC gerencia DLLs de banco centralizadamente via componentes TFDPhysXXXDriverLink).VendorLib (removido, gerenciado pelos Driver Links).ValidatePeerCertificateMaxBlobSizeSchemaNameOrigin nos campos persistentes no .dfm.O dbExpress usa units de driver de banco de dados específicas que devem ser substituídas pelas units de drivers físicos do FireDAC correspondentes na seção uses:
| Unit de Driver dbExpress | Nova Unit de Driver FireDAC |
|---|---|
Data.DbxDb2 | FireDAC.Phys.DB2 |
Data.DbxFirebird | FireDAC.Phys.FB |
Data.DbxInformix | FireDAC.Phys.Infx |
Data.DbxInterbase | FireDAC.Phys.IB |
Data.DbxMSSQL | FireDAC.Phys.MSSQL |
Data.DbxMySql | FireDAC.Phys.MySQL |
Data.DbxOdbc | FireDAC.Phys.ODBC |
Data.DbxOracle | FireDAC.Phys.Oracle |
Data.DbxSqlite | FireDAC.Phys.SQLite |
Data.DbxSybaseASA | FireDAC.Phys.ASA |
Data.DbxSybaseASE | FireDAC.Phys.ODBC |
TDBXIsolation / TTransIsolationLevel → TFDTxIsolation (em FireDAC.Stan.Option)TDBXIsolations.ReadCommitted / xilREADCOMMITTED → xiReadCommittedTDBXIsolations.RepeatableRead / xilREPEATABLEREAD → xiRepeatableReadTDBXIsolations.DirtyRead / xilDIRTYREAD → xiDirtyReadTDBXIsolations.Serializable → xiSerializibleTDBXIsolations.SnapShot → xiSnapshotxilCUSTOM → xiReadCommittedTConnectionState → TFDPhysConnectionState (em FireDAC.Phys.Intf)csStateClosed → csDisconnectedcsStateOpen → csConnectedcsStateConnecting → csConnectingcsStateDisconnecting → csDisconnectingTSchemaType → TFDPhysMetaInfoKind (em FireDAC.Phys.Intf)stNoSchema → mkNonestTables / stSysTables → mkTablesstProcedures → mkProcsstColumns → mkTableFieldsstProcedureParams → mkProcArgsstIndexes → mkIndexesstPackages → mkPackagesstUserNames → mkSchemasRemova as seguintes units obsoletas do dbExpress da cláusula uses:
Data.SqlExpr, SqlExprData.DBXCommon, DBXCommonData.DBConnAdmin, DBConnAdminData.DBXDynalink, DBXDynalink