PDA

View Full Version : بزرگ شدن حجم دیتا‌بیس



Rambod
سه شنبه 12 آبان 1383, 23:12 عصر
سلام
من از یک دیتا‌بیس اکسس استفاده میکنم و توش عکس میریزم. برام جالب بود که بعد از پاک کردن تمام رکوردهای بانک، حجم اون همچنان بالا بود. در حالیکه موقع ساختن دیتا‌بیس فقط 140 کیلوبایت حجم داشت، ولی الان 50 مگا‌بایت حجم داره بدون اینکه هیچ اطلاعاتی توش باشه. نمیشه یه کاری کرد که این حجم کاهش پیدا بکنه؟! :متفکر:

NOROOZY
پنج شنبه 14 آبان 1383, 08:00 صبح
کافی است یک بار فایلتان را ریپیر کنیدبرای این کار از منوی تولز گزینه دیتا بیس یوتیلیتی گزینه کامپکت اند ریپیر دیتا بیس را انتخاب کن
موفق باشی :sunglass:

Rambod
پنج شنبه 14 آبان 1383, 11:47 صبح
سلام. از جواب شما خیلی ممنونم. ولی میدونین چیه؟! من با ویژوال بیسیک به این دیتا بیس وصل میشم آیا نمیشه یه جوری از این طریق حجم فایل رو کم کرد؟! :گیج:

کم حوصله
جمعه 15 آبان 1383, 00:53 صبح
من از یک دیتا‌بیس اکسس استفاده میکنم و توش عکس میریزم

شدیدا این کار را رد می کنم چون به سرعت با مشکل برخورد می کنید !!

منصور بزرگمهر
جمعه 15 آبان 1383, 01:24 صبح
در اکسس می گشتید پیدا می کردید کد مورد نظراتان را :

Function RepairDatabase(strSource As String, _
strDestination As String) As Boolean
' Input values: the paths and file names of
' the source and destination files.

' Trap for errors.
On Error GoTo error_handler

' Compact and repair the database. Use the return value of
' the CompactRepair method to determine if the file was
' successfully compacted.
RepairDatabase = _
Application.CompactRepair( _
LogFile:=True, _
SourceFile:=strSource, _
DestinationFile:=strDestination)

' Reset the error trap and exit the function.
On Error GoTo 0
Exit Function

' Return False if an error occurs.
error_handler:
RepairDatabase = False

End Function

و با استفاده از DAO

Sub RepairDatabaseX()

Dim errLoop As Error

If MsgBox("Repair the Northwind database?", _
vbYesNo) = vbYes Then
On Error GoTo Err_Repair
DBEngine.RepairDatabase "Northwind.mdb"
On Error GoTo 0
MsgBox "End of repair procedure!"
End If

Exit Sub

Err_Repair:

For Each errLoop In DBEngine.Errors
MsgBox "Repair unsuccessful!" & vbCr & _
"Error number: " & errLoop.Number & _
vbCr & errLoop.Description
Next errLoop

End Sub

Rambod
جمعه 15 آبان 1383, 12:11 عصر
منصور خان از شما خیلی خیلی ممنونم
فقط یه مشکلی هست و اونم اینه که این برنامه توی وی‌بی اجرا نمیشه و از قسمت application.compactrepair ارور میگیره!

vcldeveloper
شنبه 16 آبان 1383, 03:03 صبح
شدیدا این کار را رد می کنم چون به سرعت با مشکل برخورد می کنید !!
من مدتهاست که از همین روش استفاده می کنم به مشکل هم بر نخوردم. حالا مشکلی که شما میگید چی هست؟!

Peyman_Ranjbar
دوشنبه 02 آذر 1383, 02:33 صبح
نقل قول:
شدیدا این کار را رد می کنم چون به سرعت با مشکل برخورد می کنید !!

من مدتهاست که از همین روش استفاده می کنم به مشکل هم بر نخوردم. حالا مشکلی که شما میگید چی هست؟!

این که خوبه من فایلهای با حجم 500mb رو توی اون ذخیره می کنم .
منظورتون از مشکل رو متوجه نمی شم.

hmm
دوشنبه 02 آذر 1383, 07:13 صبح
برای compac کردن database توی msdn راه های کوتاهتری هم داده
مثلا با استفاده از متد jet option (اگه اشتباه نکنم) تو موقع connect به بانک میتونی این دستور رو هم اجرا کنی بدون اینکه یک خط اضافه برنامه بنویسی
اگه نتونستی پیدا کنی یه ندا بده کدش رو بنویسم
در مورد عکس هم من تا حالا این کار رو نکردم ولی دلیل منطقی هم برای عدم پشتیبانی اکسس از object ها نمی بینم

coral
شنبه 07 آذر 1383, 12:28 عصر
شما بهتره برین در دتا بیس اکسس خود واین کار را که میگم انجام بدین
tools>options>general____> compact on close

hrh
جمعه 20 آذر 1383, 07:06 صبح
برای Repair‌ کردن فایل بانک Access‌باید اختیار انحصاری (Exclusive) داشته باشی.
ولی بهترین کار اینه که در هنگام ایجاد بانک Access از منوی Tools>Options در قسمت General گزینه Compact on Close‌ رو فعال کرده تا بهنگام بسته شدن بانک خود برنامه انو فشرده کنه.

:wink: :wink: :wink:

Peyman_Ranjbar
دوشنبه 12 بهمن 1383, 02:38 صبح
حالا اگه بخواهیم عملیات فشرده سازی اون (compact) رو از طریق net. انجام بدیم چکار باید کرد؟

sh
دوشنبه 12 بهمن 1383, 03:17 صبح
تو بخش VB.NET قبلا گفتم

hrh
جمعه 16 بهمن 1383, 20:45 عصر
اگر نسخه فایل بانک شما Access 2000 به بالاست می توانید در اکسس گزینه Compact on close را Tools>Option>General فعال کرده تا با هر بار بسته شدن فایل بانک اطلاعات عمل Compact بر روی آن صورت بگیرد. این عمل در VB نیز امکانپذیر است. چون با هر بار وصل شدن به بانک و قطع ارتباط این عمل صورت می گیرد.