Alow! Alow! Alow!
Venho faz algum tempo pensando uma maneira de ter apenas 1 projeto e deixá-lo funcionando com uma dessas bases de dados: DBF, SQL Server e Postgree!... Assim, o cliente pode escolher qual base usar, etc... Minhas dúvidas:
1) Segurança!Hoje uso DBC/DBF e faço tenho um cadastro de usuários do programa. Neste cadastro tenho nome/senha do usuário e o que ele pode (ou não) fazer. Por exemplo: Se pode consultar/incluir/alterar/excluir clientes / produtos / etc... Qual o desconto máximo permitido em uma venda... Qual condição de pagamento o usuário pode oferecer, etc...
Sei que o SQL / Postgree possui gerenciamento de segurança no próprio banco quanto ao tipo de instrução (Select/Insert/Update/Delete/StoredProc)... Até aí tudo bem... mas vamos imaginar que eu precise permitir um determinado usuário a deletar um "grupo" (inativos) de clientes, mas impedir que delete outro "grupo" (os ativos)...
No caso do desconto... Como falar para o banco que aquele usuário pode oferecer 5% e o outro 10%?
E a condição de pagamento: Determinado usuário pode vender com 30 / 60 dias e outros podem apenas oferecer a opção 30 dias...
Enfim... Como controlar o acesso de cada usuário?... No caso do DBC, não se tem muito a fazer a não ser criar uma tabela para controlar isso... Mas no caso do SQL / Postgree?
2) Diferença de sintaxe:Em DBC: Select Nome+Sobrenome From Clientes ou Update Clientes Set Nome = "Rodolfo" Where Codigo = "100" funcionaria sem problemas... mas sei que outros bancos a sintaxe é diferente... Como vocês tratam isso?
Estou querendo usar CursorAdapter... será que ele trata esse tipo de situação quando trocamos a origem de NATIVE para ODBC? E ainda: será que ele entende como deveria ficar a instrução SQL independente do banco (neste caso SQL ou Postgree)?
3) Recursos do próprio banco:Em DBC: Begin Transaction / End Transaction / Rollback ... em outros bancos Commit... - Como deixar o aplicativo pronto para gerenciar transações nos diversos bancos?
Views / Backup / Stored Procedures: Esses recursos são interessantes, melhoram desempenho / segurança... mas cada banco trata de um jeito.... Existe uma maneira de minimizar as diferenças?
[]s!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rodolfo Duarte