Beste.
Ik ben momenteel bezig met het maken van een Configuratie scherm voor mijn programma. Het doel hiervan is om als een gebruiker nog nooit het programma heeft gebruikt er wordt gekeken of er een database is zoniet dan zal hij deze voor de gebruiker aanmaken dit wordt in 2 stappen gedaan:
1. Maak een leeg database aan met alle tabellen.
2. Vul de master tabellen met records die bij alle klanten hetzelfde zijn.
Het probleem is dat we 500,000 records hebben die moeten worden geinsert. Ik heb via SQL management studio een export script gemaakt die voor mij een 650 MB .sql bestand heeft aangemaakt die er als volgt uitziet:
Dit is maar een kleinstukje hiervan. Het probleem is dat ik nu via de Microsoft SMO objects probeer het hele .SQL bestand in te lezen wat leidt tot een Out Of Memory exception de code die ik gebruik ziet er zo uit:
Ik heb oop google gezocht en kwam uit op een SQLBulkCopy maar deze accepteert volgens mij geen Insert querties, heeft iemand hier ervaring mee met het overzetten van zoveel bestanden zonder een exception te krijgen? als ik de database opsplits in kleine tabellen dan lukt het allemaal wel maar sommige tabellen zijn 200 MB groot waardoor ik alsnog de exception krijg
) Alvast bedankt!
Wijnand
Ik ben momenteel bezig met het maken van een Configuratie scherm voor mijn programma. Het doel hiervan is om als een gebruiker nog nooit het programma heeft gebruikt er wordt gekeken of er een database is zoniet dan zal hij deze voor de gebruiker aanmaken dit wordt in 2 stappen gedaan:
1. Maak een leeg database aan met alle tabellen.
2. Vul de master tabellen met records die bij alle klanten hetzelfde zijn.
Het probleem is dat we 500,000 records hebben die moeten worden geinsert. Ik heb via SQL management studio een export script gemaakt die voor mij een 650 MB .sql bestand heeft aangemaakt die er als volgt uitziet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| INSERT [dbo].[Master.RedenEindeZorg] ([RedenEindeZorgId], [Omschrijving]) VALUES (50, N'Eenmalig onderzoek') INSERT [dbo].[Master.RedenEindeZorg] ([RedenEindeZorgId], [Omschrijving]) VALUES (51, N'Screening zonder behandelvervolg') INSERT [dbo].[Master.RedenEindeZorg] ([RedenEindeZorgId], [Omschrijving]) VALUES (99, N'Behandeling wegens onbekende reden beëindigd') /****** Object: Table [dbo].[Master.Recept] Script Date: 06/29/2010 11:52:04 ******/ /****** Object: Table [dbo].[Master.Postcode.Woonplaats] Script Date: 06/29/2010 11:52:04 ******/ INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1000, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1001, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1002, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1003, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1005, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1006, N'Amsterdam') INSERT [dbo].[Master.Postcode.Woonplaats] ([Postcode], [Woonplaats]) VALUES (1007, N'Amsterdam') |
Dit is maar een kleinstukje hiervan. Het probleem is dat ik nu via de Microsoft SMO objects probeer het hele .SQL bestand in te lezen wat leidt tot een Out Of Memory exception de code die ik gebruik ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| FileInfo file = new FileInfo("eindklasse.sql"); string script = file.OpenText().ReadToEnd(); // Hier is de exception try { Server server = new Server(new ServerConnection(conn)); server.ConnectionContext.ExecuteNonQuery(script); return true; } catch (SqlException ex) { meldingbox.Text = ex.Message; return false; } |
Ik heb oop google gezocht en kwam uit op een SQLBulkCopy maar deze accepteert volgens mij geen Insert querties, heeft iemand hier ervaring mee met het overzetten van zoveel bestanden zonder een exception te krijgen? als ik de database opsplits in kleine tabellen dan lukt het allemaal wel maar sommige tabellen zijn 200 MB groot waardoor ik alsnog de exception krijg
Wijnand