Parametros no Código Genérico - ADO.NET 2.0

by Israel Aece 25. December 2005 13:28

Como já sabemos, o ADO.NET disponibiliza as Base Classes para suportar código genérico para acesso à diversas bases de dados. Uma das coisas que muitos tem dúvidas é com relação à nomenclatura dos parametros, já que isso varia de base de dados para base de dados.

Quando utilizamos SQL Server (SqlClient), o correto é utilizarmos o caracter "@" seguido do nome do parametro. Já no Oracle (OracleClient), ao invés do caracter "@", utilizamos o ":" também seguido do nome do parametro. Nesses dois casos, a ordem de inserção dos parametros na coleção dos mesmos no XXXCommand não importa. Já quando trabalhamos com OleDb, a ordem de inserção é o que predomina, não importando o nome.

Como podemos ver, os formatos variam e, temos que analisar isso em tempo de execução para anexarmos corretamente o parametro da query/Stored Procedure e, para isso, temos que, de alguma forma, saber qual é o tipo de parametros que a base de dados trabalha. Para atender essa necessidade, extraimos essa informação através do método GetSchema da classe DbConnection, exemplo:

string parameterFormat =
     conn.GetSchema("DataSourceInformation").Rows[0]["ParameterMarkerFormat"].ToString();

Esse método, retorna um objeto do tipo DataTable contendo informações do schema. Ele se baseia na instancia da classe concreta que o objeto DbConnection está armazenando, extraindo todos os meta-dados necessários para aquela base de dados. É importante dizer que, para chamar esse método, é necessário que a conexão com a base de dados esteja aberta.

Tags:

Data

Comments are closed

Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Host