Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pocetnicki problem kreiranja tabele

[es] :: MS SQL :: Pocetnicki problem kreiranja tabele

[ Pregleda: 1991 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gewra
Ivan Djuric
Beograd

Član broj: 43205
Poruke: 31
*.142.eunet.yu.



Profil

icon Pocetnicki problem kreiranja tabele09.06.2006. u 23:04 - pre 217 meseci
Elem problem je sledeci:
Zelim sam da naprvim DataBase iz C#. Ja sam ranije radio u MySQL-u i postojala je komanda Create Database [if not exists] ime baze. Elem prvi problem je ovaj deo [if not exists]-> cini mi se da nepostoji u MSSQL-u jer kompajler prijavljuje gresku, ako baza vec postoji. Mislim mogao bi to resiti i drugacije, ali ovo mi se cini kao najlaksa varijanta.
Drugi problem je u tome da kada kreiram bazu ne znam kako da se konektujem na nju, pa da onda u njoj pravim tabele jednostavnim Create Table. Dakle mogao bi da promenim ceo connection string (u prvom slucaju je "server=localhost; integrated security=sspi", a u drugom isto to + "database=ime_baze"), ali onda bi morao prvo da zatvorim konekciju sa bazom pa da je opet otvaram sto mi se cini malo neoptimizovano.
Ajd, siguran sam da je problem lako resiv, al' mi je veza sa netom ocajna otkako su maznuli ove kablove ispod gazele, pa bas i nemogu da googlujem.
Pozdrav, Ivan!

E da ako neko ima pojma dal' je moguce integrisati i sql server u aplikaciju bilo bi super da mi bar nagovesti kako.
Ajd sad zdravo!
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
*.ADSL.neobee.net.

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Pocetnicki problem kreiranja tabele10.06.2006. u 07:51 - pre 217 meseci
Sto se provog pitanja tice, naravno da postoji if not exists u mssql-u. Mozes da napises nesto ovako:

IF EXISTS(SELECT [Name] FROM sysobjects WHERE [Name] = 'imeTvojeTabele')
DROP TABLE imeTvojeTabele

CREATE TABLE ...

naravno, pod uslovom da je tabela sigurno prazna, ako imas podataka onda ovde stavis ALTER TABLE a u ELSE blok stavis CREATE TABLE.


Sto se drugog dela tice, prvo sto mi pada na pamet je da napravis dva connection objekta, mada ni ovo nije bas najsrecnije resenje...
Every hamster has his day.
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
*.ADSL.neobee.net.

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Pocetnicki problem kreiranja tabele10.06.2006. u 07:54 - pre 217 meseci
Sorry, zabrljao sam ;)

Ono sto sam napisao je za tabele a za baze vrsis selelct na master bazi
SELECT [Name] FROM sysdatabases WHERE [Name] = 'imeTvojeBaze'
Every hamster has his day.
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
..mtsns-ns.customer.sbb.co.yu.

Jabber: DarkMan


Profil

icon Re: Pocetnicki problem kreiranja tabele10.06.2006. u 17:28 - pre 217 meseci
Citat:
gewra: Drugi problem je u tome da kada kreiram bazu ne znam kako da se konektujem na nju, pa da onda u njoj pravim tabele jednostavnim Create Table. Dakle mogao bi da promenim ceo connection string (u prvom slucaju je "server=localhost; integrated security=sspi", a u drugom isto to + "database=ime_baze"), ali onda bi morao prvo da zatvorim konekciju sa bazom pa da je opet otvaram sto mi se cini malo neoptimizovano.


Samo ti napravi drugi connection string. Prvi koristi za konektovanje na master bazu i proveru da li postoji tvoja baza (ako ne napravis je) a kasnije u programu stalno koristis drugi connection string. Vidim da spominjes otvaranje i zatvaranje konekcija i da mislis da je to ne optimizovano. Pretpostavljam da mislis imati jednu konekciju i sve raditi sa njom. Ako je tako, nemoj to raditi. Za svaki SQL upit, izvrsavanje stored procedure pravis jednu konekciju i po zavrsetku je zatvars. C# ima ugradjen connection pool koji po otvaranju prve konekcije ka bazi sa jednim connection stringom pravi pool sa 10 otvorenih konekcija (ili ti vec neki unapred odredjen broj). Sledeci put kada kreiras konekciju i upotrebis isti connection string on ne otvara novu konekciju vec uzima slobodnu konekciju iz pool-a. Evo ti jedan primer:
Code:

            SqlConnection con = new SqlConnection(<tvoj connection string>);
            SqlCommand cmd = null;
            SqlDataReader reader = null;
            String S = "";
            try {
                con.Open();
                cmd = con.CreateCommand();
                cmd.CommandText = "select name from dbo.sysdatabases";
                reader = cmd.ExecuteReader();
                while(reader.Read()) S += reader.GetString(0) + "\n";
            }
            catch (Exception ex){
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            } finally {
                try { if(con != null) con.Close(); } catch(Exception) { }
                try { if(cmd != null) cmd.Dispose(); } catch(Exception) { }
                try { if(reader != null) reader.Close(); } catch(Exception) { }
            }
            MessageBox.Show(S);


Citat:
gewra:
E da ako neko ima pojma dal' je moguce integrisati i sql server u aplikaciju bilo bi super da mi bar nagovesti kako.
Ajd sad zdravo!


Ako si mislio nesto slicno sqlite (database engine u jednom fajlu) MSSQL server nema nista slicno. Moras instalirati server.
 
Odgovor na temu

[es] :: MS SQL :: Pocetnicki problem kreiranja tabele

[ Pregleda: 1991 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.