OVH Cloud OVH Cloud

création base de donnée SQL serveur

3 réponses
Avatar
Richard14
Bonjour,

Je cherche à trouver un ouvrage ou du code me permettant de créer directement
une basse de donnée pour SQL SERVEUR 2000 par programmation depuis
Visual Basic .NET (Microsoft Developpement Environnement 2003 Version 7.1)
Cette possiblilté était offerte sous visual basic 6 avec des bases de
données Access par : CREATEDATABASE si la base n'existait pas.

merci de me tenir informé

3 réponses

Avatar
AlexC
Moi j'utilise cette méthode ( ce n'est peut être pas la meilleure ) :

je créé un script SQL ( un simple fichier texte avec l'extension .sql), dans
lequel j'insère les commandes à effectuer.

Private Sub CreateSQLScriptFile(Byval NomBaseSQL as string)
Dim SqlFile As New FileInfo("c:Script.sql")
Dim SqlFileText As TextWriter
If SqlFile.Exists = False Then
SqlFileText = SqlFile.CreateText
Else
SqlFile.Delete()
SqlFileText = SqlFile.CreateText
End If
SqlFileText.WriteLine("create database " & NomBaseSQL)
SqlFileText.WriteLine("go")
'Les lignes suivantes ne sont utiles que si vous voulez spécifier un
utilisateur pour la base de donnée
SqlFileText.WriteLine("sp_addlogin '" & User & "','" & UserPassword &
"'")
SqlFileText.WriteLine("go")
SqlFileText.WriteLine("sp_grantdbaccess '" & User & "','" & BaseSQL &
"'")
SqlFileText.WriteLine("go")
SqlFileText.Flush()
SqlFileText.Close()
End Sub

Ensuite j'execute ce script qui va me créer la base SQL :

Private Sub ExecuteSQLScriptFile(ByVal Mdpsa as string, ByVal InstanceSQL as
string )
Dim OsqlProcess As System.Diagnostics.Process = New
System.Diagnostics.Process
OsqlProcess .StartInfo.UseShellExecute = False
OsqlProcess .StartInfo.RedirectStandardOutput = True
OsqlProcess .StartInfo.FileName = "osql.exe"
OsqlProcess .StartInfo.Arguments = "-U sa -P " & Mdpsa & " -S " &
System.Net.Dns.GetHostName.ToUpper & "" & InstanceSQL.ToUpper & " -n -i
c:Script.sql"
OsqlProcess .StartInfo.CreateNoWindow = True
OsqlProcess .Start()
OsqlProcess .WaitForExit()
OsqlProcess .Close()
OsqlProcess .Dispose()
End Sub

Si il existe une autre méthode je suis preneur :o)
Avatar
Richard14
Richard14

J'ai plus de 100 tables à créer, et je fais des mises à jour chez plus de
300 clients
tous les mois. Je cherche quelque chose de plus pertinent.

Merci à toi



"AlexC" a écrit :

Moi j'utilise cette méthode ( ce n'est peut être pas la meilleure ) :

je créé un script SQL ( un simple fichier texte avec l'extension .sql), dans
lequel j'insère les commandes à effectuer.

Private Sub CreateSQLScriptFile(Byval NomBaseSQL as string)
Dim SqlFile As New FileInfo("c:Script.sql")
Dim SqlFileText As TextWriter
If SqlFile.Exists = False Then
SqlFileText = SqlFile.CreateText
Else
SqlFile.Delete()
SqlFileText = SqlFile.CreateText
End If
SqlFileText.WriteLine("create database " & NomBaseSQL)
SqlFileText.WriteLine("go")
'Les lignes suivantes ne sont utiles que si vous voulez spécifier un
utilisateur pour la base de donnée
SqlFileText.WriteLine("sp_addlogin '" & User & "','" & UserPassword &
"'")
SqlFileText.WriteLine("go")
SqlFileText.WriteLine("sp_grantdbaccess '" & User & "','" & BaseSQL &
"'")
SqlFileText.WriteLine("go")
SqlFileText.Flush()
SqlFileText.Close()
End Sub

Ensuite j'execute ce script qui va me créer la base SQL :

Private Sub ExecuteSQLScriptFile(ByVal Mdpsa as string, ByVal InstanceSQL as
string )
Dim OsqlProcess As System.Diagnostics.Process = New
System.Diagnostics.Process
OsqlProcess .StartInfo.UseShellExecute = False
OsqlProcess .StartInfo.RedirectStandardOutput = True
OsqlProcess .StartInfo.FileName = "osql.exe"
OsqlProcess .StartInfo.Arguments = "-U sa -P " & Mdpsa & " -S " &
System.Net.Dns.GetHostName.ToUpper & "" & InstanceSQL.ToUpper & " -n -i
c:Script.sql"
OsqlProcess .StartInfo.CreateNoWindow = True
OsqlProcess .Start()
OsqlProcess .WaitForExit()
OsqlProcess .Close()
OsqlProcess .Dispose()
End Sub

Si il existe une autre méthode je suis preneur :o)





Avatar
Patrice
Idem dans SQL Server. Il est possible d'utiliser les commandes SQL CREATE
DATABASE puis CREATE TABLE etc...

Sinon SQLDMO ou fichier modèle mais avec un peu plus de pré-requis
(installation, accès).

--
Patrice

"Richard14" a écrit dans le message de
news:
Bonjour,

Je cherche à trouver un ouvrage ou du code me permettant de créer


directement
une basse de donnée pour SQL SERVEUR 2000 par programmation depuis
Visual Basic .NET (Microsoft Developpement Environnement 2003 Version 7.1)
Cette possiblilté était offerte sous visual basic 6 avec des bases de
données Access par : CREATEDATABASE si la base n'existait pas.

merci de me tenir informé