none
DataSet não atualiza o banco access

    Pergunta

  • Bom dia, Senhores!

    Olá, tenho um problema que se aplica na hora de gravar os registros da base. Vou explicar o processo e em seguida, colar um trecho do código para os senhores.

    Bom, o processo consiste em atualizar a base local do cliente, onde ele preenche um dataset ou datatable, de uma base mysql e em seguida uso esse datatable para gravar os registros que me foram retornados da base mysql, remota, para a base local que é uma base access. até ai, nenhum problema. Em contra-partida, a base em access não recebe os registros, ao final de todo o processo, eu atualizado o datasource da grid com o dataset que está rodando na aplicação e aparece os registros que quero atualizar, mas não consigo fazer com que esses registros sejam gravados efetivamente no banco. vou colocar a rotina de gravação logo abaixo para que vc´s possam ver e se possivel me ajudarem.

    Um abraço...

    PS:VS 2005; access 2003. Base de dados remota é mysql

     

    Code Snippet

       'declarações do objetos
           Private mds As New CRUD.MAXINEGOCIOS.dsMaxiNegocios                           
                  Dim dr As CRUD.MAXINEGOCIOS.dsMaxiNegocios.anuncios1Row        
                
                 Try
                        'BIND NA TABELA DE ANUNCIOS
                        For i As Integer = 0 To myData.Rows.Count - 1
                            With myData.Rows(i)
                                'dataAtualizacao = FormatDateTime(.Item("data"), DateFormat.LongDate)
                                Dim int_codigo As Integer = .Item("codigo")
                                s_data.FillByCodigo(mds.anuncios1, int_codigo)
                                If mds.anuncios1.Count > 0 Then
                                    dr = mds.anuncios1(0)
                                    isNew = False
                                Else
                                    dr = mds.anuncios1.Newanuncios1Row
                                    isNew = True
                                End If

                                'Aqui eu atribuo os valores ao datarow (vou postar abaixo o metodo)
                                bindTemp(dr, myData, i)
                                If isNew Then mds.anuncios1.Addanuncios1Row(dr)
                                mds.EnforceConstraints = False
                                s_data.Update(mds.anuncios1)
                                mds.AcceptChanges()
                            End With
                        Next
                        str_resultado = "Sucesso"
                    Catch ex As Exception
                        str_resultado = "Erro ao Gravar os registros atualizados. " + ex.Message
                    End Try

     

     

    Atribuindo os valores ao datarow

    Code Snippet

    Public Sub bindTemp(ByVal dr As CRUD.MAXINEGOCIOS.dsMaxiNegocios.anuncios1Row, ByVal DadosMysql As DataTable, ByVal indice As Integer)

    With DadosMysql.Rows(indice)

    dr.cod_cliente = .Item("cod_cliente")

    dr.codigo = .Item("codigo")

    dr.nome_fantasia = " aNovo - " & .Item("nome_fantasia")

    dr.cod_anuncios_modulos = .Item("cod_anuncios_modulos")

    dr.cod_atividades = .Item("cod_atividades")

    dr.telefone = .Item("telefone")

    dr.cep = .Item("cep")

    dr.endereco = .Item("endereco")

    dr.bairro = .Item("bairro")

    dr.cidade = .Item("cidade")

    dr.uf = .Item("uf")

    dr.numero = .Item("numero")

    dr.informacao = .Item("informacao")

    dr.site = .Item("site")

    dr.email = .Item("email")

    'dr.html = .Item("html")

    dr.data = .Item("data")

    dr.ativo = .Item("ativo")

    End With

    End Sub

     

     

    PS: no try/catch não sai do try, como se ele ocorresse erro algum!! mas enfim. valeu, antecipadamento

    :\

    segunda-feira, 6 de outubro de 2008 14:27

Respostas

  • Boas...
    Então, amigo. Eu estive testando e meio que deixei de lado. quando, eis que, me aparece a solução!!
    Bom, Quando se cria um dataset no visual studio, ele pergunta se eu quero copiar o arquivo para o local do projeto e tals;
    Quando fazemos a referência do objeto (dataset) no projeto (no meu caso a interface), ele copia o arquivo .mdb para o local do projeto e toda vez a mesma coisa. toda vez em que rodo (modo debug ou release), ele copia o arquivo do projeto do dataset para o local da atualização;
    Logo, não houve solução pq não havia problemas!!!

    Bom, espero que fique como base de conhecimento!!!!
    sexta-feira, 24 de outubro de 2008 19:06

Todas as Respostas

  • Caro colega,

    será que teu arquivo .mdb não está como Read-only?

     

    Já tive problemas parecidos quando programava com ASP 3.0

     

     

    Att.

    sábado, 11 de outubro de 2008 23:45
  • Olá, amigo. Eu passei por um problema de access uma vez quando mexi com ASP 2.0.

    Eu li seu Post e fui olhar, pois realmente não tinha me atentado à isso. Mas não era isso não, cara.

    Então, to meio que perdido. Não sei mais pra onde correr.

     

    Mas lhe agradeço!! valeu. Se tiver mais alguma ideia do que seja, por favor, aceito todas as ajudas!!!

    domingo, 12 de outubro de 2008 23:33
  • Boas...
    Então, amigo. Eu estive testando e meio que deixei de lado. quando, eis que, me aparece a solução!!
    Bom, Quando se cria um dataset no visual studio, ele pergunta se eu quero copiar o arquivo para o local do projeto e tals;
    Quando fazemos a referência do objeto (dataset) no projeto (no meu caso a interface), ele copia o arquivo .mdb para o local do projeto e toda vez a mesma coisa. toda vez em que rodo (modo debug ou release), ele copia o arquivo do projeto do dataset para o local da atualização;
    Logo, não houve solução pq não havia problemas!!!

    Bom, espero que fique como base de conhecimento!!!!
    sexta-feira, 24 de outubro de 2008 19:06