Transfer dati da tabella Firefox

mercoledì 14 novembre 2007 - 16.20

gennyfor Profilo | Junior Member

[VB 2005]Ecco....manco 2 minuti e gia mi ritrovo a postà....forse oggi sto un po rinc.....
Allora un cliente mi ha commissionato un nuovo programma di gestione dati x l'azienda.
però ha il bisogno di aggiornare continuamente i dati tramite un altro programmino(che io dovrò fare)che preleva i dati da una tabella(.dbf) e li dovrà trasferire in un altra tabella del nuovo database del programmma finale (credo che userò SQL SERVER 2005).Questa è un operazione che dovrà fare spesso x mantenè aggiornato il suo software quindi dovrà essere una cosa automatizzata. vi posto alcune cose che ho utilizzito ma mi da errori......(ho collocato i due database in C:\database\ x verificare se la cosa funziona, la tabella si chiama Magart)

Dim connection1 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;")

Dim connection2 As New sqlconnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\database\datafinale.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")

Dim resetta As New sqlcommand
resetta.Connection = connection2
connection2.Open()
resetta.CommandText = "DELETE FROM dbo.Magart"
resetta.ExecuteNonQuery()
connection2.Close()

Dim pescav As New OleDb.OleDbCommand
pescav.Connection = connection1
pescav.CommandText = "SELECT codice,descrizione,alias,unmisura,gruppo,classe,sconto1,sconto2,sconto3,provv,statoart,ubicazione,listino1,listino2,listino3,listino4,listino5,listino6,listino7,listino8,listino9,[for. stand,],[costo stand.],[ultimo costo],nomenclatura FROM magart.dbf"
connection1.Open()
pescav.ExecuteReader()
Dim pescavr As SqlDataReader = pescav.ExecuteReader
Do While pescavr.Read
Cliente = pescavr.GetString(0)
dataordine = CStr(pescavr.GetDateTime(1))
Articolo = pescavr.GetString(2)
marcare = pescavr.GetString(3)

'''''qui continua con tutto il resto del datareader...............

Dim insert As New sqlcommand
insert.Connection = connection2
insert.CommandText = "INSERT INTO dbo.magart 'qui sono elencate le varie colonne da inserire'"

connection2.Open()
insert.ExecuteNonQuery()
connection2.Close()

Loop
pescavr.Close()


End Sub

Finish!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ecco.....secondo voi......xkè mi da un errore gia alla lettura della stringa di connessione????
(fate attenzione, la prima stringa si riferisce ad una semplice tabella mentre la seconda ad un db Ms sql......)

lbenaglia Profilo | Guru

>Ecco.....secondo voi......xkè mi da un errore gia alla lettura
>della stringa di connessione????

Ciao Genny,

Io invece ti rispondo con una domanda: per quale motivo occorre scrivere un programmio quando una operazione di sincronizzazione tra due data provider può essere effettuata in modo totalmente automatico utilizzando gli strumenti nativi offerti da SQL Sever?
Ho visto che utilizzi le User Instances... c'è un motivo particolare per il quale ti vuoi fare del male?
Fidati, fai finta che non esistano nemmeno, sono una porcata colossale che creano più problemi che altro.

Bene, ora con che edizione di SQL Server 2005 hai intenzione di lavorare?
SQL Server 2005 Express Edition non dispone del SQL Server Agent, pertanto bisognerà utilizzare strade alternative per schedulare il "job" di sincronizzazione (come ad esempio un bel batch schedulato via Windows Scheduler che richiama l'utility command line sqlcmd).
Altre soluzioni le trovi in questo post:
http://blogs.dotnethell.it/lorenzo/Strategie-di-Backup-con-SQL-Server-2005-Express-Edition__3028.aspx

Per quanto riguarda la connessione ad Access puoi definire un Linked Server:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/3bbae5a103003639

A questo punto non devi fare altro che scrivere i comandi di TRUNCATE TABLE (per svuotare la tabella SQL Server di destinazione) ed INSERT INTO...SELECT FROM per popolarla con i dati provenienti dalla tabella del file .mdb.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gennyfor Profilo | Junior Member

ti ringrazio x la precisa risposta Lorenzo, ma vedi dato che sono un autodidatta e programmo in vb.net da 5 o max 6 mesi, è dall'inizio che interagisco con i db ed è solo cosi che so fare

D'altra parte la mia curiosità mi ha spinto a curiosare nelle importazioni dei db nell'ambiente di lavoro del vb.net ma mi credi che nn sono riuscito a trovare la procedura esatta x un link al dbf???(forse nn mi sono spiegato bene prima, il db di origine è una tabella firefox, non access)
Infatti sono riuscito a trovare diversi tipi di importazione, mdb,mdf, ecc ecc......ma niente dbf(firefox) e purtroppo il programma aziendale generatore dal quale lui deve attingere i dati utilizza proprio un dbf......come faccio?

lbenaglia Profilo | Guru

>D'altra parte la mia curiosità mi ha spinto a curiosare nelle
>importazioni dei db nell'ambiente di lavoro del vb.net ma mi
>credi che nn sono riuscito a trovare la procedura esatta x un
>link al dbf???(forse nn mi sono spiegato bene prima, il db di
>origine è una tabella firefox, non access)

No scusa, ho letto male io
Questo link dovrebbe tornarti utile:
http://groups.google.it/group/microsoft.public.it.sql/msg/1b02034789abe889

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gennyfor Profilo | Junior Member

ora siGrazie lorenzo
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5