n° 185
Maggio/Giugno 2013
Maggio 22, 2013, 07:42:49 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: routine popolamento database  (Letto 1439 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
cata
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 1


Mostra profilo
« inserita:: Giugno 01, 2010, 01:57:44 pm »

ho un problema abbastanza urgente da risolvere.

ho una tabella creata con Microsoft SQL Server con 3 campi;

tramite un ciclo do while creo diciamo i miei dati in vb dopodichè dovrei spararli dentro nella mia tabella. il problema è che questo do while ha un contatore e finchè non raggiunge il valore 15.000.000 non si ferma. in pratica devo generare 15.000.000 di record . la sub funziona solo che è troppo lenta in 14 ore ha riempito soltanto 800.000 record.. qualcuno sa aiutarmi a velocizzare questo processo?!

Private Sub GeneraRecord()

        Dim dataAdapter As SqlDataAdapter
        dataAdapter = New SqlDataAdapter("SELECT * FROM Posizioni ORDER BY IMEI", sqlConn)
        Dim dataSet As DataSet
        dataSet = New DataSet
        Try
            dataAdapter.Fill(dataSet)

            Do While nr < 15000000

                imei = imei + 1
                If imei > 9999 Then
                    imei = 0
                End If

                lat = lat + 0.1
                If lat > 90 Then
                    lat = 0
                End If

                lon = lon + 0.1
                If lon > 80 Then
                    lon = 0
                End If

                times = times + 1
                If times > 9999999999 Then
                    times = 0
                End If

                vel = vel + 0.1
                If vel > 20 Then
                    vel = 0
                End If

                tipoe = tipoe + 1
                If tipoe > 99 Then
                    tipoe = 0
                End If

                nr = nr + 1

                Dim cb As New SqlCommandBuilder(dataAdapter)
                Dim newTestRow As DataRow = dataSet.Tables(0).NewRow()

                newTestRow(0) = imei
                newTestRow(1) = lat
                newTestRow(2) = lon
                newTestRow(3) = times
                newTestRow(4) = vel
                newTestRow(5) = tipoe

                dataSet.Tables(0).Rows.Add(newTestRow)


                dataAdapter.Update(dataSet.Tables(0))

            Loop


            sqlConn.Close()
            nr = 32768
        Catch ex As Exception

            MsgBox("errore")

        End Try


    End Sub


Registrato
mmsoftware
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 3


Mostra profilo
« Risposta #1 inserita:: Giugno 22, 2010, 07:09:49 pm »

Perdona la curiosità, perchè devi inserire dati che puoi ottenere attraverso un calcolo? , a parte tutto il resto, i.e. 15.000.000 di record, il costrutto etc.!!!

Buon lavoro cmq
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page