PDA

View Full Version : سوال: Dettach



aminvb
دوشنبه 08 شهریور 1389, 12:47 عصر
دوباره سلام


موقعی که attch میکنم به دیتا بیس و به فیلدام ادد یا حذف رو انجام می دم میام دوبار دیتا بیسم ری استور کنم میگه دیتا بیس در حال استفادس

باید برناممو ببندو دوباره بازم کنم که به دیتا بیس وصل نباشه تا بتونم ری استور کنم

دستور قطع ارتباط از دیتا بیس چیه؟

مننونم:خجالت:

دوستان دسته مبتدی ها رو هم بگیرین

Artisoft
دوشنبه 08 شهریور 1389, 13:05 عصر
آخه چرا دو بار ریستور میکنی؟

aminvb
دوشنبه 08 شهریور 1389, 13:08 عصر
این جور فک کن من اطلاعات دیتا بیسمو اشتباهی پاک کردم میخواهم همونجا ریستور کنم که دوباره بگرده

Artisoft
دوشنبه 08 شهریور 1389, 13:47 عصر
به اینا یه سری بزن:

http://msdn.microsoft.com/en-us/library/system.data.idbconnection.close(v=VS.90).aspx



Sub CloseObjects()
Dim db As Database
Dim rs As Recordset
Dim qd As QueryDef

Set db = CurrentDb
Set rs = db.OpenRecordset("Employees", dbOpenTable)
Set qd = db.QueryDefs("Invoices")

rs.MoveLast ' Move to the last record in the Recordset.

MsgBox "The Employees Recordset is open." & vbcr & _
"The last Employee ID is " & rs![EmployeeID] & "."

Msgbox "The Invoices query definition is open." & vbcr & _
"The first field in the query is " & qd.Fields(0).Name

' Explicitly close the Recordset and QueryDef objects.
rs.Close
qd.Close
End Sub

Artisoft
دوشنبه 08 شهریور 1389, 13:57 عصر
اینم یه کد دیگه واسه بستن دیتابیس.

' BeginCloseConnectionVB
Sub Main()
On Error GoTo CloseConnectionByNothingError

Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table

cnn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & _
"Data Source= 'Northwind.mdb';"
Set cat.ActiveConnection = cnn
Set tbl = cat.Tables(0)
Debug.Print tbl.Type ' Cache tbl.Type info
Set cat.ActiveConnection = Nothing
Debug.Print tbl.Type ' tbl is orphaned
' Previous line will succeed if this info was cached.
Debug.Print tbl.Columns(0).DefinedSize
' Previous line will fail if this info has not been cached.

'Clean up.
cnn.Close
Set cat = Nothing
Set cnn = Nothing
Exit Sub

CloseConnectionByNothingError:
Set cat = Nothing

If Not cnn Is Nothing Then
If cnn.State = adStateOpen Then cnn.Close
End If
Set cnn = Nothing

If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
' EndCloseConnectionVB

MaryamEsmailzadeh
دوشنبه 08 شهریور 1389, 14:52 عصر
دوست عزیز ساختاری به نام using وجود داره که با رسیدن به انتهای بلوک
به صورت خودکار object موجود در بلوک را Dispose می کند و اگر Object موجود در بلوک
Connection به Database باشه به طور خودکار Connection رو می بنده و ارتباط باDatabase قطع می شه.
یک مثال برای ساختار کلی using

using cnn as new sqlconnection(My.settings.sqlconnectionString

cnn.open
--------
--------
your code
---------
---------
End using

armin8651
دوشنبه 08 شهریور 1389, 21:10 عصر
براي اين کار شما اول بايد از دستور UseMaster تو sql استفاده کنين که بانک فعال شما تغيير پيدا کنه .
پس براي Restore کردن کد زير رو به عنوان کد Command قرار بدین


cmd.CommandText = "Use Master;ALTER DATABASE databasename SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
"RESTORE DATABASE databasename FROM DISK= '" & path & "' with REPLACE;" & _
"ALTER DATABASE databasename SET MULTI_USER"


databasename اسم دیتابیستون رو بذارین
و در متغير Path هم نام و مسير فايل Bacup رو باید قرار بدین