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


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.

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s