[ ceso @ 11.09.2010. 10:07 ] @
Kako napraviti setup projkat koji instalira program koji ima SQL bazu?
Znači napravio sam neki program u VB i napravim instalaciju pomoću Setup wizarda.Instalacija prođe ok ali kad ga pokrenem izbaci mi neku grešku a pomoću tipke nastavi otvori mi se program ali bez podataka koji su smješteni u bazi.
Ako itko zna
[ Justice4All @ 13.09.2010. 20:42 ] @
E ovako... Mene je ovaj problem BAŠ namaltretirao. Ne znam koliko su moja rešenja ispravna i čista, ali nekako funkcionišu...
Kao prvo, kompletna .Net filozofija rada sa podacima je bazirana na SQL serveru, što u prevodu znači da je, pre svega, SQL server instaliran i startovan a baza "prijavljena" na server (Ovo nema NIKAKVE veze sa tvojim programom, sve se mora odraditi eksterno, tj. pomoću SQL Menagment Studija). Tada kao connection string koristiš konstrukciju: connString = @"server=.\SQLEXPRESS;Integrated Security=True;database=ime_baze". O tome gde se nalazi baza brine SQL server i nikakva putanja do nje se ne navodi.
Može se odraditi i bez SQLMSa, tako što negde iskopiraš bazu a koristiš sledeći kon.string:
conString1 = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\nekiFolder\ime_baze;Integrated Security=True;User Instance=True"; (Ovo "AttachDbfName" prijavljuje tvoju bazu na server svaki put kada startuješ program).

E sad, pitanje je kako to odraditi iz instalacije programa???? NIKAKO !!?? Prosečan korisnik bi sve to morao sam da odradi a to je, po meni, nemoguća misija, čak i uz detaljna uputstva. Drugi primer je jednostavniji ali moraš da biraš opet izmedju dve varijante: da fiksiraš folder u kome je baza, što baš i nije neko elegantno rešenje ili da se pomučiš sa malo komplikovanijim kon. stringom gde će se putanja učitavati iz nekog konfiguracionog fajla, ali opet ponavljam: zahteva se KORISNIK sa priličnim znanjem (a takvi su vrlo,vrlo retki). Pretpostavljam je ideja program koji se vrlo lako instalira klikom na par Next tastera. Na žalost, i ja sanjam o nečemu takvom, sve svoje instalacije sam do sada morao lično da postavim...

P.S. primeri su u C#, mada mislim da je slična konstrukcija i u VB.
[ NrmMyth @ 14.09.2010. 03:00 ] @
XCopy baze su:
Od Microsofta se očekuje SQL Server Compact 4.0: http://robtiffany.com/sql-serv...e-comes-sql-server-compact-4-0
A već sad imaš SqlLite: http://www.sqlite.org/
[ ceso @ 14.09.2010. 22:18 ] @
Interesira me ova prva varijanta sa SQL Menagment od Justice4All ako može malo detaljnije (gdje, šta, kako) jel nisam baš neki stručnjak ali eto učim pomalo.
[ Solution @ 15.09.2010. 10:34 ] @
Ja sam ovaj problem resio tako sto sam napravio SQL skript, i kada se aplikacija ucitava po prvi put, ucitam skript i deo po deo izvrsavam kao bilo koji upit. Evo kako to izgleda kroz kod:

Code:

                TextReader tr = new StreamReader("sql_init\\mssql_all.sql");  // u ovom fajlu se cuvaju svi upiti koji kreiraju bazu, tabele, dodaje potrebne podatke itd.
                string str = (tr.ReadToEnd());
                tr.Close();

                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = konekcija;

                if (str != null && str.Length > 0)
                {
                    string[] sql = str.Replace("GO\r\n", "~").Split(new Char[] { '~' });
                    for (int i = 0; i < sql.Count(); i++)
                    {
                        if (sql[i] != null && sql[i].Trim().Length > 1)
                        {
                            SqlCommand cmd = new SqlCommand(sql[i], conn);
                            conn.Open();
                            cmd.ExecuteNonQuery();
                            conn.Close();
                        }
                    }
                }