none
Como descobrir o tipo de dado e o seu tamanho num banco ACCESS RRS feed

  • Pergunta

  • Boa tarde,

    Estou fazendo um programa, para comparar bancos do access, e sincronizá-los, eu até consegui fazer, mas agora me deparei com a parte principal, saber qual o formato do campo, ou o tamanho, por exemplo, se for Numeric, verificar qual o formato, por exemplo Numeric(18,2), não sei se deu para entederem.

    Procurando pela net, encontrei os seguintes códigos:

    //1º
    dt = GlobCN.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName });
    
    //2º
    OleDbCommand cmdSelect;
            OleDbDataReader dr;
            //cmdSelect = new OleDbCommand("SELECT * FROM " + tableName, GlobCN);
            cmdSelect = GlobCN.CreateCommand();
            cmdSelect.CommandText = @"SELECT * FROM " + tableName;
            dr = cmdSelect.ExecuteReader(CommandBehavior.SchemaOnly);
            for (int i = 0; i <= dr.FieldCount - 1; i++)
            {
              dt.Columns.Add(dr.GetName(i));
              dt.Columns[i].DataType = dr.GetFieldType(i);
            }
            dr.Close();
    

    Tanto o 1º, quanto o 2º me retornam o schema do banco e o tipo dos dados, mas em nenhum encontrei por exemplo, num campo string o tamanho dele. E para eu colocar tamanhos padrões ficaria estranho, pois imaginem um campo string UF, com 80 caracteres.

    Será que alguém tem alguma idéia de como eu obter esse dados? Ou alguma outra forma de eu encontrar o tipo do campo e o seu tamanho, formato, etc...

    Obrigado.

    segunda-feira, 13 de setembro de 2010 18:41

Respostas

Todas as Respostas