ورود

View Full Version : سوال: تبديل چند كد sql server مربوط به دلفي به كد ويژوال بيسيك



ali682344
دوشنبه 16 فروردین 1389, 11:54 صبح
با سلام
مي دونم كه اين موضوع شايد به اين بخش مربوط نباشه ولي من در بخش اصلي اين موضوع رو مطرح كردم ولي متاسفانه كسي جواب نداد
حال من چند كد مربوط به نحوه attach و ساخت كاربر و تغيير owner رو از دلفي دارم
ولي من دلفي بلد نيستم از شما اساتيد خواهشمندم كه اين كدها را به صورت vb6 تبديل كنيد

ادرس پست مربوط به اين كدها
http://barnamenevis.org/forum/showthread.php?t=189546&highlight=EXEC+sp_attach_db+%40dbname
كدها:

1) اتصال بانک اطلاعاتی که روی هارد قرار دارد به SQL Server:

ADOCO.CommandText:='EXEC sp_attach_db @dbname = N'+QuotedStr('BridgeDB')+','+
'@filename1 = N'+QuotedStr(ExtractFilePath(Application.ExeName)+ 'DataBase\BridgeDB_Data.MDF')+','+
'@filename2 = N'+QuotedStr(ExtractFilePath(Application.ExeName)+ 'DataBase\BridgeDB_Log.LDF');
ADOCO.Execute;
2) ایجاد کاربر مورد نظر در SQl Serevr:
ADOCO.CommandText := 'Exec SP_AddLogin ' + QuotedStr('user name') +
',' + QuotedStr('Password') + ',' + QuotedStr('DataBase name') + ';';
ADOCO.Execute;

3) تغییر Owner یک بانک اطلاعاتی یا اصطلاحا همون کاربر بانک اطلاعاتی
ADOCO.CommandText:='use BridgeDB';
ADOCO.Execute;
ADOCO.CommandText:='EXEC sp_changedbowner '+QuotedStr('UserName');
ADOCO.Execute;

بي صبرانه متنظر پاسختون هستم:افسرده::افسرده::افسرده:

ASKaffash
دوشنبه 16 فروردین 1389, 12:15 عصر
سلام
یکی را برات می نویسم بقیه با خودت :


Public Sub RunSQL(ByVal YourConnectionString As String, ByVal YourSQL As String)
Dim TmpCon As New ADODB.Connection
TmpCon.Open YourConnectionString
TmpCon.Execute YourSQL
TmpCon.Close
End Sub
Private Sub Command1_Click()
username = "NewUser"
Password = "123"
DatabaseName = "Test"
CS = "............." 'ConnectionString
Cmd = "'Exec SP_AddLogin '" + username + ",'" + Password + "','" + DatabaseName + "'"
Call RunSQL(Cmd, CS)
End Sub

ali682344
دوشنبه 16 فروردین 1389, 13:54 عصر
با تشکر از پاسختون

من دو سه هفته ای میشه این کدهای دلفی رو پیداکردن ولی هرچی این مغز فندقی رو به کار می ندازم نموتنم تبدیل کنم شما از من چه انتظاری دارید که بقیه کدها رو تغییر بدم
اگه براتون مقدوره کد اتچ که برام خیلی مهمه و کد owner رو هم تغییر بدید



بازم از پاسختون ممنونم

ali682344
دوشنبه 16 فروردین 1389, 15:08 عصر
كد attach رو يكي از دوستان لطف كرد
فقط كد تنظيم owner مونده

اين كد attach
Con.Execute "EXEC sp_attach_db @dbname = N'" & "db" & "', @filename1 = N'" & Trim(UCase(aa)) & "'"

اگه كسي اين تنظيم owner رو داره لطف كنه تا راحت بشيم

ASKaffash
دوشنبه 16 فروردین 1389, 15:22 عصر
سلام
شبیه به این کد :


Public Sub RunSQL(ByVal YourConnectionString As String, ByVal YourSQL As String)
Dim TmpCon As New ADODB.Connection
TmpCon.Open YourConnectionString
TmpCon.Execute YourSQL
TmpCon.Close
End Sub
Private Sub Command1_Click()
CS = "............." 'ConnectionString
Cmd = "EXEC sp_attach_db @dbname = N'BridgeDB',@filename1=N'" + App.Path + "\DataBase\BridgeDB_Data.MDF',@filename2=N'" + App.Path + "\DataBase\BridgeDB_Log.LDF'"
Call RunSQL(Cmd, CS)
End Sub

ali682344
سه شنبه 17 فروردین 1389, 09:28 صبح
با تشكر از پاسختون
تنها كدي كه نياز به تغيير به وي بي رو داره


3) تغییر Owner یک بانک اطلاعاتی یا اصطلاحا همون کاربر بانک اطلاعاتی
ADOCO.CommandText:='use BridgeDB';
ADOCO.Execute;
ADOCO.CommandText:='EXEC sp_changedbowner '+QuotedStr('UserName');
ADOCO.Execute;

بازم ممنومنم

ASKaffash
سه شنبه 17 فروردین 1389, 15:15 عصر
سلام


Public Sub RunSQL(ByVal YourConnectionString As String, ByVal YourSQL As String)
Dim TmpCon As New ADODB.Connection
TmpCon.Open YourConnectionString
TmpCon.Execute YourSQL
TmpCon.Close
End Sub
Private Sub Command1_Click()
UserName = "MyUser"
CS = "............." 'ConnectionString
Cmd = "Use BridgeDB;EXEC sp_changedbowner '" + UserName + "'"
Call RunSQL(Cmd, CS)
End Sub