Fórum Aplicação em qualquer banco de dados. #266444
27/01/2005
0
Estou projetando um sistema que deverá rodar tanto em SQL Server quanto em Oracle. Por isso, estou tentando fazer de uma forma que acesse também Firebird, entre outros...
Pensei em separar os fontes para cada um dos bancos. Mas acredito que essa não seria a solução mais inteligente [rs].
A parte de acesso aos dados não é tão dofícil, mas sim as consultas, updates, etc...
Deveria usar ODBC? Ou qual componente de acesso acham melhor?
Ex:
:arrow: [b:b33564a6cd]OUTER JOIN[/b:b33564a6cd]
========
SQL Server : CAMPO1 =* CAMPO2
Oracle : CAMPO1 =+ CAMPO2
:arrow: [b:b33564a6cd]NULOS[/b:b33564a6cd]
=====
SQL SERVER : IsNUll( CAMPO1, ´xxx´)
ORACLE : Nvl( CAMPO1, ´xxx´ )
Já passaram por isso?
Poderiam me dar uma ajuda / opnião sobre o assunto.
Abraços.
Valeu!
Hebrao
Curtir tópico
+ 0Posts
27/01/2005
Gandalf.nho
Gostei + 0
27/01/2005
Hebrao
E como faço com a diferença de sintaxe entre um banco de dados e outro, como por exemplo o IsNull x NVL?
[]´s
Heber
Gostei + 0
28/01/2005
Isabelct
Algo bem no tipo
if BancoDeDados = bdOracle then
{ comandos para Oracle }
else if BancoDeDados = bdSQLServer then
{ comandos para SQL Server }
else
{ outros comandos }Acho que não tem como fugir muito disso...
Gostei + 0
28/01/2005
Marcio.theis
Gostei + 0
28/01/2005
Bon Jovi
Pra outros casos que não dá pra seguir esse caminho, faço métodos no Delphi, em uma classe que centraliza tratamentos de multidatabase, sem precisar redundar querys ou procedimentos para cada banco na camada de regras de negócio.
Sobre joins especiais, não aconselho usar * do SQL Server e nem (+) do Oracle, e sim LEFT JOIN, RIGHT JOIN, etc, que é do padrão ANSI. SQL Server 2000 e Oracle 9 suportam esse padrão. Caso tenha q usar obrigatoriamente o Oracle 8, a saída então é entrar na 2º solução que falei, criando um método no Delphi passando o nome do campo1 e campo2 no parâmetro e retornando a string montada com o operador correspondente ao banco.
Gostei + 0
29/01/2005
Denis
Use o SQL Ansi e não terá problemas.
Eu tenho um sistema que roda em MySql, em SqlServer e tbm em Interbase. Todas as rotinas funcionam perfeitamente. E eu ainda uso BDE com os componentes normais de acesso a dados como query, database , etc...
Dica. Seja simples e não invente muito.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)