Nuno Filipe Godinho

Tudo sobre .NET e Arquitectura

Recent Posts

Tags

News

Community

Email Notifications

Archives

Julho 2004 - Posts

Como enviar objectos não serializáveis via WebServices

  Estava aqui a fazer um pouco de leitura e vi este artigo que me parece muito interessante por abranger todas as possibilidades existentes para o envio de Objectos não serializáveis numa mensagem SOAP, e sendo um problema com o qual muitas vezes nos deparamos achei interessante partilhar este link com todos vocês.

  Podem encontrar o mesmo em http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnwebsrv/html/opaquedata.asp.

Alterações da versão 1.1 para a versão 2.0 da .NET Framework

Estava ainda à pouco a fazer uma pequena leitura de alguns blogs e alguns artigos sobre o ASP.NET 2.0 e tb sobre a .NET Framework 2.0, quando deparei com uma coisa que mto provávelmente deverá interessar à grande maioria dos programadores, que é saber quais os membros e tipos que foram descontinuados na nova versão da .NET Framework.

Para isso podem fazer download do um ficheiro zip que se encontra no seguinte endereço http://www.gotdotnet.com/team/changeinfo/Beta1ObsData.zip , o qual tem uma descrição exaustiva de quais as alterações de uma versão para a outra.

Se entretanto encontrarem outras alterações não referenciadas, podem contribuír para que elas sejam catalogadas e talvez apontar razões pelas quais pensam que deveriam ser mantidas. Podem fazer isso no seguinte url: http://www.gotdotnet.com/team/changeinfo/default.aspx.

Espero que gostem.

    Nuno Filipe Godinho

Descobrir dinâmicamente os parâmetros de uma Stored Procedure

   Muitas vezes deparamo-nos com questões que estão directamente relacionadas com questões de performance, de modularidade, de flexibilidade, etc. Uma dessas questões é quando queremos saber quais os parâmetros de uma determinada Stored Procedure por forma a que possamos fazer um método genérico de chamada às mesmas. Com isto surge a questão de como podemos preencher os parâmetros do nosso SqlCommand ou OracleCommand, ou um Command de outro provider. Esta questão é de resposta simples mas que por vezes não é do conhecimento geral e por isso a criação de um pequeno artigo por forma a que possam ser eliminadas algumas horas de trabalho para quem anda às voltas com estas situações.

   Para ver o artigo click aqui.

   Espero que o artigo seja do vosso interesse, e em caso de alguma questão estão à vontade, basta fazer o post que responderei assim que possível,

       Nuno Godinho

Descobrir dinâmicamente os parâmetros de uma Stored Procedure

Muitas vezes deparamo-nos com questões que estão directamente relacionadas com questões de performance, de modularidade, de flexibilidade, etc. Uma dessas questões é quando queremos saber quais os parâmetros de uma determinada Stored Procedure por forma a que possamos fazer um método genérico de chamada às mesmas. Com isto surge a questão de como podemos preencher os parâmetros do nosso SqlCommand ou OracleCommand, ou outro Command de outro provider. Esta questão é de resposta simples mas que por vezes não é do conhecimento geral e por isso a criação deste pequeno artigo por forma a que possam ser eliminadas algumas horas de trabalho para quem anda às voltas com estas situações.

Para a ilustração desta questão irei criar uma pequena aplicação de Windows Forms que não irá fazer mais do que receber a Origem dos Dados (Data Source), a Base de Dados (Database) e qual o nome da Stored Procedure que desejamos inquirir acerca dos seus parâmetros, sendo que após o click no botão Execute os parâmetros da mesma irão aparecer numa Datagrid por forma a que os possamos consultar.

Então começemos.

Em primeiro lugar teremos de efectuar o formulário da nossa aplicação que irá ficar com o seguinte aspecto:



E agora passemos à parte que interessa. (Código)

No evento de OnClick do botão de Executar iremos começar por criar a nossa SqlConnection através da seguinte instução:


string connectionString = "Data 
Source=" + txtDataSource.Text + "; Initial Catalog=" + txtDatabase.Text + "; Integrated Security = SSPI;";
SqlConnection conn = new SqlConnection(connectionString);

Posteriormente iremos criar o um objecto do tipo SqlCommand por forma a definir qual a StoredProcedure que irá ser inquirida.

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = txtStoredProcedure.Text;
cmd.CommandType = CommandType.StoredProcedure;

Agora sim vamos à parte que interessa, que é precisamente a fase em que populamos os parâmetros da StoredProcedure inquirida, através do seguinte código:

try
{
    conn.Open();
    SqlCommandBuilder.DeriveParameters(cmd);
}
finally
{
    if (conn.State != ConnectionState.Closed)
    conn.Close();

}

Por fim e para terminar o nosso pequeno exemplo, teremos de tornar a colecção de parâmetros do nosso SqlCommand como a origem dos dados apresentados na nossa DataGrid, da seguinte forma:

dataGrid1.DataSource = cmd.Parameters;

Nota: A Chave para descobrir dinâmicamente quais os parâmeteros de uma StoredProcedure é a utilização do método estátido DeriveParameters da classe SQLCommandBuilder, sendo que para a sua correcta utilização, é necessário que seja passado o objecto do tipo SqlCommand que criámos anteriormente, por forma ao mesmo ser populado com os parâmeteros necessários para a sua utilização. Quando é efectuada a chamada ao método DeriveParameters é necessário que a ligação à base de dados se encontre aberta, pois só assim o DeriveParameters pode inquirir a base de dados acerca dos parâmetros associados à stored procedure.

Poderá efectuar download do código deste exemplo aqui.

Posted: 1-7-2004 12:20 por Nuno Filipe Godinho | with 5 comment(s)
Filed under: