Ahojte, dlho som nepísal :) Mám opät zrejme triviálny problém, tak skúsim, ci ma niekto nakopne: Mám vytvorenú štruktúru tabuliek v databázi SQLCe. Casom som tabulky naplnil hodnotami, ale zistujem, že by som potreboval v tabulkách pridat nejaké polia + pridat ešte asi dve nové tabulky. Chápem, že vo VS 2010 mi stací pripojit v Server Exploreri novú Data Connection a môžem veselo editovat celú databázu. Pred zaciatkom testovania aplikácie si vždy zálohujem úplne prázdnu tabulku, bez dát. To kvôli tomu, aby som ju mohol potom distribuovat spolu s hotovou aplikáciou. Ja by som to teraz potreboval urobit tak, že by som si do tej databázy bez dát pridal riadky a polia a potom do takto upravenej databázy prekopíroval dáta z tej, kde už mám nejaké dáta. Aktuálne polia nechcem menit, zostanú rovnaké definície, takže ku kolízii dôjst nemôže. Urobil by som to asi takto: Teoreticky aj prakticky dokážem prejst v cykle For Each všetky tabulky a snád aj polia. Najprv som myslel, že pomocou INSERT klasicky vložím hodnoty do prázdnych tabuliek v novej databázi. Lenže som si uvedomil, že problém by bol s autoincrement fields. Na internete som však našiel jeden príklad a podla neho som si napísal:
Private Sub CloneTab()
Dim ds As DataSet = New DataSet()
Dim tblZdroj As DataTable
Dim tblCopy As DataTable
Dim tblZdrojCount As Integer
Dim tblCopyCount As Integer
Dim i As Integer
Dim con As SqlCeConnection = New SqlCeConnection(GetConnectionString)
Try
HandleConnection(con)
Dim da As SqlCeDataAdapter = New SqlCeDataAdapter("Select * from KAT", con)
'Fill the DataSet with data.
da.Fill(ds, "zdroj")
tblZdroj = ds.Tables("zdroj")
tblZdrojCount = tblZdroj.Rows.Count
tblCopy = tblZdroj.Clone
For i = 0 To tblZdrojCount - 1
tblCopy.ImportRow(tblZdroj.Rows(i))
Next
tblCopyCount = tblCopy.Rows.Count
For i = 0 To tblCopyCount - 1
MsgBox("Row(" & i.ToString & ") = " & Decrypt(tblCopy.Rows(i)(2), TabulkaPs) & vbCrLf & tblCopy.Rows(i)(0))
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
HandleConnection(con)
End Try
End Sub
Ked som si dal zobrazit tblCopy (naimportované dáta v prázdnej tabulke), bol som príjemne prekvapený, pretože boli naimportované aj autoincrement fields presne tak, ako v pôvodnej. No hej, ale co teraz s tým? Naklonoval som virtuálne novú tabulku z pôvodnej, naimportoval som do nej dáta z pôvodnej. Ale ako ju pridám do novej databázy?
|