Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Metodo di Aggirnamento tabella db
sabato 14 luglio 2007 - 09.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Giscotech
Profilo
| Junior Member
140
messaggi | Data Invio:
sab 14 lug 2007 - 09:31
Salve a tutti.
Nel mio db ho una tabella articoli che aggiorno tramite un file di testo che proviene da un AS400.
La mia tabella ha molti più campi rispetto a quella originale e quindi non ho la possibilità di aggiornarla tramite istruzioni sql, veloci ed affidabili.
Per non perdere queste informazioni aggiuntive ho creato questa procedura di aggiornamento :
1) lettura stringa dal file txt
2) aggiornamento tabella db dopo aver individuato le informazioni per ogni campo.
Questo sistena potrebbe anche andar bene , ma risulta un pò lento anche perchè le righe del file sono per ora 27000!
Avevo pensato ad un'altra soluzione , che non ho provato e quindi non so se può risultare percorribile :
- creazione di 2 tabelle : 1 per i dati provenienti dall'AS400 e 1 tabella per i dati aggiuntivi collegata con una relazione 1 ad 1.
In questo modo in teoria potrei tramite istruzione sql cancellare i record della tabella 1 e appendere quelli del file di testo, conservando i dati aggiuntivi.
Potrebbe essere una strada percorribile?
Avete qualche altra idea da suggerirmi?
Grazie
Giuseppe Scordo
Giscotech Informatics
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
sab 14 lug 2007 - 17:39
Credo che sia del tutto inutile caricare il file di testo in un dataset e poi aggiornare il database.
Io propenderei per generare un command con i relativi parametri.
Dim cn As New OleDbConnection(myconnectionstring)
Dim cm As new OleDbCommand("INSERT INTO mytable (campo, campo2, campo3) VALUES (?, ?, ?)",cn)
Dim prm As OleDbParameter
prm = new OleDbParame5ter
prm.ParameterName = "campo"
prm.Direction = ParameterDirection.Input
prm.DbType = DbType.String 'metti il tipo giusto
cm.parameters.add(prm)
... ripetuto per tutti i campi
cn.Open
poi leggi il file con StreamReader
Per ogni riga
assegni
cm.Parameters("nomecampo").value = valore del campo
... ripetuto per tutti i campi
cm.ExecuteNonQuery
Giscotech
Profilo
| Junior Member
140
messaggi | Data Invio:
mar 17 lug 2007 - 07:53
Grazie per la risposta...
...ma io già faccio tutto questo (forse non mi sono spiegato bene).
Il problema è che siccome su ogni riga che leggo dal file di testo devo fare dei controlli , mi rallenta notevolmente tutto il processo.
Io volevo sapere se era possibile dividere la mia tabella in 2 parti :
1) una tabella per la parte che devo aggiornare dal file
2) una tabella per la parte che invece deve rimanere sempre fissa contenente le informazioni aggiunte da me e non presenti nel file di testo.
Le due tabelle unite da una relazione uno-a-uno.
Cmq penso non sia possibile perchè effettivamente se elimino tutti i record della tab.1 per metterci dentro tutti i record del file mi verrebbe restituito un'errore in quanto andrei ad intaccare l'integrità referenziale dei record.
Ma allora come faccio?
Giuseppe Scordo
Giscotech Informatics
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !