[ borcha @ 27.07.2007. 15:49 ] @
Otvorio sam na .net forumu temu Kreiranje baze sql servera u klijentu (vb), slabo mi ko odgovara. Da li neko zna kako. Prvo sam koristio SQLDMO nije islo bas najbolje, zatim me je lik usmerio i predlozio manager.smo.....! Skroz sam zbunjen...Koristim tutorijale ali primerim ne rade!

Code:
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common


'----------------------------------------------------
'Connect to the local, default instance of SQL Server.
        Dim srv As Server
        srv = New Server
        'Define a Database object variable by supplying the server and the 
        'database name arguments in the constructor.
        Dim db As Database
        db = New Database(srv, "Test_SMO_Database")
        'Create the database on the instance of SQL Server.
        db.Create()
        'Reference the database and display the date when it was created.
        db = srv.Databases("Test_SMO_Database")
        Console.WriteLine(db.CreateDate)
        'Remove the database.
        db.Drop()


Gde odlazi ta datoteka tj. gde se ona fizicki pojavljuje, sta kako...skroz sam zbunjen???
[ prog @ 28.07.2007. 11:07 ] @
Izbor SMO se preporuca od strane MS kada radis sa NET platformom.

Primjer koji si kopirao sa MSDN ne radi jer nisi kod formiranja Server naveo naziv tog servera.
Server klasa ima tri konstruktora:

Server();
Server(ServerConnection serverConnection);
Server (string name);


Koristi druga dva konstruktora ili prvi pa mu dodaj poslije ime servera.

Kad formiras bazu podataka na server, prvo je kreiraj, promijeni PrimaryFilePath property, te je attaciraj na server.

Ovo bi trebalo pomoci.
[ borcha @ 28.07.2007. 11:22 ] @
Hvala za prethodni odgovor! Ako moze jos jedno pitanje...???
Kako da iskoristim prethodno napravljenu bazu i tabele tj. njivove scripte da u clijent apl. napravim bazu sa tabelama . Znaci da se postedim kucanja u smo-u! Ili gotove procedure .
[ prog @ 28.07.2007. 11:27 ] @
ovo je cod u C# ali mislim da se mozes snaci

public static bool CopyDataBaseSameServer(string serverName, string sourceDB,string destDB)
{
try
{

{
Server sv = new Server(serverName);
//Source DataBase
Database db=sv.Databases[sourceDB];
//Destination DB
Database DBcopy = new Database(sv, destDB);
DBcopy.Create();

//Transfer

Transfer xfr=new Transfer(db);
xfr.CopyAllTables = true;
xfr.CopyAllViews = true;
xfr.CopyData = true;
xfr.CopyAllObjects = true;
xfr.Options.WithDependencies = true;
xfr.Options.ContinueScriptingOnError = false;
xfr.DestinationDatabase = destDB;
xfr.DestinationServer = sv.Name;
xfr.DropDestinationObjectsFirst = true;


xfr.DestinationLoginSecure = true;
xfr.CopySchema = true;
// xfr.ScriptingProgress += new ProgressReportEventHandler(this.ProgressReport);

StringCollection script=xfr.ScriptTransfer();

DBcopy.ExecuteNonQuery(script);

//xfr.ScriptTransfer();
xfr.TransferData();

}
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}
return true;
}

Mislim da bi trebao raditi
[ borcha @ 28.07.2007. 11:37 ] @
gde se nalazi StringCollection u kojoj dll ?
[ prog @ 28.07.2007. 11:42 ] @
Potrudi se malo

System.Collection.Specialized;
[ borcha @ 28.07.2007. 11:46 ] @
Dobro ok, to je kad je baza na serveru. Na primer nemam bazu ali su mi ostale scripte kao fajlovi, koje su ostale kao posledivca pravljenja baze i tabela, procedura u SQL Ex. Manageru! Kako njih kao ostavstinu tj. fajlove (scripte) da pozovem i iskoristim. Znaci ovo je kopiranje postojece, ako sam dobro razumeo...?
[ borcha @ 28.07.2007. 11:51 ] @
Trudim se vec dva dana. Bojim se da ne ostanem t.....! ;-)
[ prog @ 28.07.2007. 12:11 ] @
Da primjer je kopiranje postojece baze na serveru. Na zadnje pitanje bi ti preporucio da:

-formiras bazu na serveru (Praznu) prethodni primjer
-ucitaj skripte u string collection i
- pozovi ExecuteNonQuery ( DBcopy.ExecuteNonQuery(script);)


ili da ako se u skripti nalazi kod za kreiranje baze na server

-formiras objekt klase ServerConnection (kod formiranja ovog objekta moras mu prosljediti string sa konekcijom)
-ucitas skripte sa diska u StringCollection
-pozoves Ĩlanicu ExecuteNonQuery(StringCollecton sqlCommands) objekta ServerConnection.
[ borcha @ 28.07.2007. 12:24 ] @
Hvala!