Pa ovako.
Prvo, veoma bitno je da li zelis ovaj proces konvertovanja da radis vise puta ili samo jednom. Ja sam imao slucaj gde je trebalo nekih 500+ baza konvertovati u novi format (mdb->MSDE) pa je tu bilo ne moguce raditi svaku bazu pojedincano. Zato sam pribegao automatizaciji posla, gde se preko jednog servisa konvertuju dolazeci paketi podataka. Ukoliko i ti imas neku slicnu potrebu za ovim onda ne bi bilo lose da pribegnes slicnoj taktici. Sa druge strane, ukoliko ti je dovoljno samo jednom da konvertujes podatke onda ti ovaj dodatni deo posla nece trebati. Ja cu ti ukratko napisati neko moje resenje za oba slucaja.
1. Kada treba samo jednom da konvertujes podatke
Ovde mozes da iskoristis (DTS) Data Transformation Wizard programcic koji dolazi uz SQL Server. Preko njega mozes veoma jednostavno da prebacis podatke iz DBF na SQL Server. Ja se nisam mnogo zadrzavao u ovom programu ali mislim da je za neko prosto prebacivanje sasvim dovoljan. Mozes pogledati podesavanja pa ih i promeniti po svojoj volji pa tako mozda vec i sa DTS zavrsis posao konvertovanja, sve zavisi koliko su organizacije samih DB-a razlicite. Uglavnom, ako uspes preko DTS da zavrsis posao onda, pa nista, posao je gotov. Ukoliko ti ovo ne odradi posao, odnosno sa DTS-om ne mozes da uradis sve potrebne manipulacije, onda ti jednostavno prebaci sa DTS-om podatke iz DBF na SQL server u istom formatu kao sto su u DBF-u. Ovako ces dobiti kopiju podataka DBF-a koja ce se nalaziti na SQL Serveru. Sad se mozda pitas sta ce ti isti podaci, tj. podaci sa istom strukturom DBF-a kad to vec imas i u DBF-u. Pa razlog je sam SQL Server. Ovako imas potpunu slobodu da radis sa podacima kao sto bi i radio na SQL server-u. Znaci podaci su tu, sad ih samo treba prebaciti. Pa ovo je mozda i najtezi deo, jer je direktno zavistan od kompleksnoti samih sistema u jednom i drugom formatu. Najveci problem sa kojim sam se ja susreo je taj sto referential intigrity kod DBF-a nije koriscen (ne znam ni da li je postojao) pa samim tim tabele su bile pune prljavih podataka. Ovo je nigthmare za konvertovanje jer onda mora gomila provera da se uvede da bi novi sistem prihvatio podatke. Isto tako i sifre mogu biti razlicite a da se odnosi na iste stvari sto opet stvara probleme itd. Uglavnom, ovde mozes kompletno uraditi sve u SQL sto je po meni dosta elegantno resenje. Ja sam radio tako sto sam za svaku tabelu iz mdb-a kreirao po jednu proceduru u kojoj sam obavljao konvertovanje u novu tabelu/tabele. Posle samo pozoves proceduru i podaci su konvertovani. Eto nista lakse :)
2. Kada vise puta treba da konvertujes
Ovde bi mogao da pribegnes nekom programskom resenju u kombinaciji sa uskladistenim procedurama. Program bi ti lepo dopremao podatke koje bi zatim konvertovao. Samo konvertovanje je indenticno kao ono gore spomenuto. Znaci, imaces staru strukturu koju ces preko SQL konvertovati u novu. Ovde ce jedini problem biti kako prebaciti podatke iz dbf-a na SQL server jer ti neces koristiti DTS, jer pretpostavljam da se DTS ne moze pozivati preko komandne linije sa argumentima, gde bi ti argumenti bili podaci o data source i data destionation-u. Ovaj deo mozes onda uraditi preko Linked Server-a. Kada kreiras Linked Server prema DBF-u, ostaje ti onaj deo o konvertovanju koji sam vec spomenuo. Uglavnom, kad zavrsis sve ove celine, ostaje ti jos da ovo automatizujes. Ovo mozes da uradis sve preko jedne uskladistene procedure gde ce ona pozivate sve ostale poslove sto ce ti olaksati proces ponovnog konvertovanja. Ovo ce za tvoj slucaj mozda biti sasvim dovoljno pa neces morati pisati dodatni programcic kako bi odradio jos neke usputne poslove. Sve zavisi kakva ti je dostupnost podataka i u kolikoj meri hoces/neces da se petljas sa rucnim prebacivanjem podataka. Uglavnom, ovo je ukratko neko resenje. Detalje sam izostavio jer ne znam sta ces hteti da radis, pa da ne pisem bez-veze ovde.
Ako vec se budes odlucio da ovako radis onda ti postavi pitanje gde si zapeo pa cu ti ja probati pomoci.
Eto, ukratko to bi bilo to :)
Only Time Will Tell