Migrando de componentes no Delphi [FireDac]
O reFind é uma ferramenta que auxilia na atualização e remoção de componentes, substituição, remoção de “uses”, adiciona “uses”, remover/adicionar propriedades em componentes, utilizado em linha de comando por expressões regulares, muito utilizado "mas pouco conhecido" na hora de atualizar componentes ou até a versão do Delphi, eu utilizei hoje para remover um componente de terceiro e colocar outro no lugar.
Sua utilização é bem simples, abaixo esta o exemplo que acompanha o Delphi em minha versão esta na pasta (C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\DBX2FDMigration).
Na pasta existe um exemplo chamado FireDAC_Migrate_DBX.txt, este arquivo informa para o aplicativo reFind tudo que é para ser feito.
Na pasta existe um exemplo chamado FireDAC_Migrate_DBX.txt, este arquivo informa para o aplicativo reFind tudo que é para ser feito.
#unuse Data.SqlExpr
#unuse Data.DBXCommon
#unuse Data.DBConnAdmin
#unuse Data.DBXDynalink
#unuse SqlExpr
#unuse DBXCommon
#unuse DBConnAdmin
#unuse DBXDynalink
...
// Driver units -------------------------------------------------------------------------------
#migrate Data.DbxDb2 -> FireDAC.Phys.DB2
#migrate Data.DbxFirebird -> FireDAC.Phys.FB
#migrate Data.DbxInformix -> FireDAC.Phys.Infx
#migrate Data.DbxInterbase -> FireDAC.Phys.IB
#migrate Data.DbxMSSQL -> FireDAC.Phys.MSSQL
#migrate Data.DbxMySql -> FireDAC.Phys.MySQL
#migrate Data.DbxOdbc -> FireDAC.Phys.ODBC
#migrate Data.DbxOracle -> FireDAC.Phys.Oracle
#migrate Data.DbxSqlite -> FireDAC.Phys.SQLite
#migrate Data.DbxSybaseASA -> FireDAC.Phys.ASA
#migrate Data.DbxSybaseASE -> FireDAC.Phys.ODBC
// Generic types -------------------------------------------------------------------------------
#migrate TDBXIsolation -> TFDTxIsolation, FireDAC.Stan.Option
#migrate TDBXIsolations.ReadCommitted -> xiReadCommitted, FireDAC.Stan.Option
#migrate TDBXIsolations.RepeatableRead -> xiRepeatableRead, FireDAC.Stan.Option
#migrate TDBXIsolations.DirtyRead -> xiDirtyRead, FireDAC.Stan.Option
#migrate TDBXIsolations.Serializable -> xiSerializible, FireDAC.Stan.Option
#migrate TDBXIsolations.SnapShot -> xiSnapshot, FireDAC.Stan.Option
Para a remoção das uses se utiliza "#unuse" com o nome da uses ao lado:
#unuse Data.SqlExpr
Para migração do propriedades iguais mas com nomes diferentes:
#migrate Data.DbxDb2 -> FireDAC.Phys.DB2
Para remoção de propriedades de componentes:
#remove AutoClone
Agora vamos voltar para pasta do exemplo e verificar oque vamos utilizar:
Entre outros comandos, nessa mesma pasta de contem os um cara chamado "migrate.bat" nele contem os comando que vão executar nosso "FireDAC_Migrate_DBX.txt" baixo o arquivo: Obs:
Primeira linha contém o nome da pasta com os fontes "Meu fonte", Na ultima linha ele executa o reFind.
Um resumo o "migrate.bat" cria uma pasta e copia todos os arquivos para la, e , neste ponto ele passa todos os arquivos .pas, .dfm e .fmx, seguido os comandos que colocamos no primeiro aquivo.
Vamos executar este "migrate.bat" e apos abrir o sistema que foi enviado para a pasta "FireDAC_MeetingOrg" em meu caso converti do componente TpFibDataSet para o FireDac, não é tão sofrido a migração mas tem que vincular corretamente suas propriedades.
Este comentário foi removido pelo autor.
ResponderExcluirSaberia me dizer onde consigo o script para o rfind para converter dbGo (Componentes ADO) para o FireDAC?
ResponderExcluirUma maneira já pronta acredito que seja um pouco difícil de conseguir, tem poucas pessoas que compartilham essa informação, quando tive que fazer a conversão do FibPlus para o FireDac fui obrigada a fazer do zero por esse motivo!
Excluirobrigado. Eu acho que ado está meio que morto. como sou das antigas meu projeto é muito grande e preciso converter isto. Vai dar muito trabalho acredito. Mas ainda não estou preparado para tal.
ExcluirTenho uma dúvida cruel.na versão Delphi 10.3.3 Community Edition equivalente ao Professional, segundo a embarcadero, o FireDAC consigo fazer conexão do SQL Server na máquina remota? eu consigo fazer isto perfeitamente com o TADOConnection.
ResponderExcluirSim o FireDAC tem essa opção, teve algum problema ao tentar fazer?
Excluirainda não pois tenho medo de fazer e depois não dar certo e ter que voltar todo o projeto. Sei que o FireDAC é maravilhoso e ganha em muito desempenho em relação ao ADO.
ExcluirFaz uma copia dos fontes e faz teste em cima dele, só para para os fontes originais quando esta tudo rodando certinho, da para brincar sem medo com a cópia dos fontes.
ExcluirEstou usando #remove assim, mas não esta removendo a propriedade do *dfm, o que estou errando?
ResponderExcluir#remove TFMTBCDField.MaxValue
#remove TFMTBCDField.MinValue
#remove TFMTBCDField.currency
#remove TFMTBCDField.Size
Bom Dia, Ana Paula. Teria como vc disponibilizar esse FireDAC_Migrate_DBX.txt. Desde já Agradeço a atenção.
ResponderExcluir