Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Diferenças entre DBC e SQL
Message
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Diferenças entre DBC e SQL
Divers
Thread ID:
01046086
Message ID:
01046086
Vues:
86
Já fiz alguns testes com o SQL Server, mas agora preciso ir adiante. Comprei o livro "SQL Server 2000 - Administração e Desevolvimento" - É muito bom, mas minhas dúvidas (são muitas!!!) são em relação ao uso do SQL com o VFP utilizando CursorAdapters com ODBC:


Poucos Registros
Atualmente, quando o usuário entra no formulário de clientes, eu abro uma grade com todos os clientes. Então ele se movimenta na grade e pressiona ENTER para abrir a ficha daquele determinado registro.
Sei que não posso fazer isto usando SQL, pois preciso filtrar alguns registros. Como posso criar uma interface eficiente usando SQL? Pensei em filtrar pelo Nome ou CNPJ do cliente.


Tipo de Dados
No DBC eu uso apenas 3 tipos de dados: Caracter, Numerico e Data. Para campos lógicos, utilizo a estrutura Numeric (0 = falso, 1 = verdadeiro). Vi que no SQL, temos vários tipos. Posso continuar usando esses mesmos 3 tipos ou é melhor utilizar um campo específico (questão de performance, segurança, normalização). Vou mostrar alguns exemplos que uso em VFP e gostaria de sugestões para converte-los no SQL:
Nome - Caracter 50
Sexo - Caracter 1 (M ou F)
Inativo - Numerico 1 (0=Ativo, 1=Inativo)
Quantidade - Numerico 7 (de +999999 a -999999)
Valor Unitário - Numerico 12,3
Aniversário - Data 8


Chave Primária
No DBC eu tenho um campo INTEGER que é sequencial. Tenho uma função que trava o registro, soma mais 1 no último e atualiza a chave primária do registro.
No SQL Server, vi que posso utilizar um campo IDENTITY ou GUID. As vantagens do IDENTITY é ser gerado automaticamente e ocupar menos espaço no banco. O GUID deve ser gerado através de uma função e ocupa mais espaço no banco, porém é único e pode ser muito útil para replicação.


Página de caracteres
Como ficam os acentos no SQL Server? No DBC eu uso SET COLLATE TO "GENERAL". No SQL tem alguma coisa parecida?
Além disso, se eu for pesquisar JOÃO e no banco de dados estiver JOAO, o SQL reconhece isso?


Índices
Os índices podem ser Clustered ou Non-Clustered. Vale a pena usar o índice Clustered?


Log de Transação
Utilizando os triggers, eu construi uma rotina de auditoria em DBC. Vi que o SQL tem um recurso nativo. Funciona bem? Compromete a performance?


Begin Transaction / Commit
Funciona bem com Cursor Adapter?


Replicação / Backup / "Reindex"
Vou utilizar as ferramentas do próprio SQL Server, ok? Alguma recomendação?


Instalação do SQL Server
A idéia inicial era ter o mesmo sistema acessando DBC e SQL através do Cursor Adapter. Teria apenas um sistema e o usuário escolheria o banco de dados. Mas acho que usando apenas o SQL Server, vou ter um produto final muito mais estável e eficiente.
Porém, este produto será instalado em pequenos clientes. Uma máquina apenas, rodando Windows 98, funcionaria com o SQL Server? (neste caso estou pensando em usar o SQL Express...)


Criar / Atualizar Banco de Dados
Para criar o banco de dados no SQL Server não seria problema... E a atualização da base dos clientes, como pode ser feita?


Tabelas que não mudam no cliente
Li um artigo que dizia ser uma boa prática manter tabelas que não mudam na máquina local. Ex: Estados.DBF - Algum comentário a respeito?



Integridade
Uso o DBC "completo" - Tenho triggers, regras de registro, índices candidatos, etc. No meu sistema, quando tento gravar e existe algum erro, o próprio banco de dados retorna o que está errado. Ex: "Nome não informado" ou "Código do Produto duplicado", etc! Posso fazer algo parecido no SQL Server?


Conexão
Onde eu posso gravar os dados do servidor do SQL, usuário, senha, etc? Internamente no EXE?


Segurança
Crio um usuário genérico para todos os usuários ou um usuário no SQL para cada usuário do sistema?
Atualmente eu tenho uma tabela de usuários com as permissões de cada um: Pesquisar Cliente, Incluir Cliente, Alterar Cliente, Excluir Cliente, etc... E também algo do tipo: Desconto máximo permitido, etc.
No SQL Server, vou manter esse mesmo esquema, certo?



bom, é "só" isso... :-)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rodolfo Duarte
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform