none
Inserir zero a esquerda RRS feed

  • Pergunta

  • Olá Amigos,

    Tenho um tabela em dbf que contem um campo do tipo numeric e gostaria de colocar zeros a esquerda, como posso fazer tal procedimento no select da tabela.

    Ex:

    Select Cod From Tabela.dbf

    Desde já agradeço.

    Fábio Freitas

    quarta-feira, 15 de julho de 2009 13:44

Respostas

  • Segue exemplos

    http://social.msdn.microsoft.com/forums/pt-BR/vsvbasicpt/thread/a6c11d21-5542-422f-a739-9a934f8fb681/

    http://www.vbweb.com.br/dicas_visual.asp?Codigo=2120

    • Marcado como Resposta Fábio Freitas quarta-feira, 15 de julho de 2009 13:58
    quarta-feira, 15 de julho de 2009 13:49
  • No exemplo que postei, os valores são armazenados em um datatable, então você pode fazer um select : “select cod from tabela” e depois percorrer todo o datatable analisar quantos zeros deve ser colocado no campo código e realizando alteração. 

    Acho que assim deve funcionar.

     

    • Marcado como Resposta Fábio Freitas quarta-feira, 15 de julho de 2009 19:39
    quarta-feira, 15 de julho de 2009 14:29

Todas as Respostas

  • Segue exemplos

    http://social.msdn.microsoft.com/forums/pt-BR/vsvbasicpt/thread/a6c11d21-5542-422f-a739-9a934f8fb681/

    http://www.vbweb.com.br/dicas_visual.asp?Codigo=2120

    • Marcado como Resposta Fábio Freitas quarta-feira, 15 de julho de 2009 13:58
    quarta-feira, 15 de julho de 2009 13:49
  • Obrigado Rmarietti,

    Não tem como fazer tal procedimento no select mesmo?

    Abcs,
    quarta-feira, 15 de julho de 2009 13:59
  • No Select não da, o que você esta fazendo é para efeito visual, zero a esquerda foge das regras numéricas, para gravar com zero a esquerda você deverá deixar o campo como String (Somente texto).
    quarta-feira, 15 de julho de 2009 14:03
  • Olá,

    Vou explicar melhor, tenho um tabela em dbf e preciso ler esta tabela e gravar no Firebird, o campo é um numeric e teria de colocar zeros a esquerda para que fique com o tamanho 6.


    Ex: 1       =  000001
          12     =  000012
          120   =  000120

    Abcs.

    quarta-feira, 15 de julho de 2009 14:11
  • Td bem Fábio,

    No exemplo abaixo, o arquivo DBF está na pasta temp onde é realizado uma pesquisa e concatenado o zero com o código. Fiz o teste aqui e funcionou.

    Se for isso que você está querendo fazer.

     

     

    Abços

    Robinson  



    Private Sub AcessarDBF()
            Dim oConn As New OleDbConnection()
            Dim dt As New DataTable()
            Try
                oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties=dBASE IV;"
                oConn.Open()
                Dim oCmd As OleDbCommand = oConn.CreateCommand()
                oCmd.CommandText = "SELECT '0'& cod as Cod FROM Tabela"
                dt.Load(oCmd.ExecuteReader())
                gridteste.DataSource = dt
            Catch ex As Exception
                MsgBox("Ocorreu um Erro")
            End Try
        End Sub
    quarta-feira, 15 de julho de 2009 14:22
  • No exemplo que postei, os valores são armazenados em um datatable, então você pode fazer um select : “select cod from tabela” e depois percorrer todo o datatable analisar quantos zeros deve ser colocado no campo código e realizando alteração. 

    Acho que assim deve funcionar.

     

    • Marcado como Resposta Fábio Freitas quarta-feira, 15 de julho de 2009 19:39
    quarta-feira, 15 de julho de 2009 14:29
  • Você também pode colocar os zeros que faltam no momento do Insert.

    Flwz

    Robinson

     

    quarta-feira, 15 de julho de 2009 15:59
  • Olá Robinson,

    Estava querendo evitar de percorrer o DataTable, mas valeu por enquanto farei assim mesmo.

    Obrigado pela ajuda.

    Abcs,
    quarta-feira, 15 de julho de 2009 19:41