ورود

نسخه کامل مشاهده نسخه کامل : بازيابي database کمک کمک



aty7070
01-12-2010, 13:55
من ميخوام بازيابي انجام بدم اما هر کاري مي کنم ارور ميده. کدهاي زير رو نوشتم اما جواب نداد. اسم پايگاه دادم a هستش.

و مسيري که فايل backup ذخيره شده به طور دقيق و همراه با اسم فايل و پسوندش در Edit1 نوشته شده. متغيير d هم از نوع رشته تعريف کردم. اروري که ميده اينه:


'Exclusive access could not be obtained because the database is in use.'

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

aty7070
04-12-2010, 20:56
ترو خدا بگيد چيکار کنم.........................................؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

مرد مباح
06-12-2010, 15:02
دیتابیستون SQL هستش؟
ممکنه به خاطر ارتباط SQLServer باشه که بازه.
میتونی بجا این کار از فرمان Select هم برای بازیابی استفاده کنی و تیبل مورد نظرت رو در جای دیگه ای ذخیره کنی.

aty7070
06-12-2010, 16:25
آره از sql استفاده مي کنم.
اين کد رو اگه توي يه پروژه جدا استفاده کنم و اصلا table نداشته باشم و فقط از connection استفاده کنم و به پايگاه دادم وصل بشم مي تونه واسم بازيابي رو انجام بده اما وقتي table ميارم ارور ميده. منم بايد يه پروژه به استادم تحويل بدم نمي شه دو تا پروژه استفاده کنم.
هرچي هم close مي کنم جواب نميده.تا چند روز ديگه هم تحويل پروژه دارم.....................

hamedvahedi
06-12-2010, 21:32
از امکانات خود SQL براي backup و restore استفاده کن.


BACKUP DATABASE [SQL Database]
TO DISK = 'D:\SQLDatabase.bak'

aty7070
06-12-2010, 22:02
حرف شما درست اما من بايد حتما از برنامه دلفي اين کار رو انجام بدم. از خود sql کمک گرفتم و توي محيط sql تونستم بازيابي رو انجام بدم اما توي دلفي اگه يه جدول بيارم و بهش ارتباط بدم ديگه اين کار غير ممکن ميشه.به هيچ وجه نمي تونم ارتباط بين جدولم رو قطع کنم واسه همين ارور مي ده.

M.Hashemi
07-12-2010, 00:15
با سلام
تا جایی که من میدونم از دستورات لحظه ای sql هم می توان در دلفی استفاده کرد.
فقط کافی است به جای :
AdoQuery1.Open;
بنویسید :
AdoQuery1.ExecSQL;
اما اگر میدونید که این هم عمل نمیکند تنها یک راه به ذهنم میرسد :
همان گونه که گفتید دستورات در خود sql کار می کنند پس یک StoredProcedure بسازید که عمل بازیابی را انجام دهد و سپس ان را از توی دلفی فرا خوانی کنید.
البته نظر من در جای که اساتیدی مانند مرد مباح عزیز حضور دارد بی ارزش است ولی به هر حال گفتم نظرم را بگم شاید مشکلتان حل شود.
امیدوارم نظرم به کارتون بیاد
با تشکر

aty7070
07-12-2010, 23:33
سلام
منظورتون از StoredProcedure چي هست؟
من فقط در اين مورد تونستم کدهاي زير رو تو sql پيدا کنم:

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>

@p1 int = 0,

@p2 int = 0

AS

BEGIN

SET NOCOUNT ON;

SELECT @p1, @p2

END

GO
قطعه کدي که من تو sql مينويسم و جواب ميده اين کد هستش:

USE master

GO



RESTORE DATABASE poro

FROM DISK = N'f:\a\poro.bak'

WITH

FILE = 1,

NOUNLOAD,

REPLACE,

STATS = 10

GO
خالا به نظر شما اين کد رو کجا بزارم؟ و StoredProcedure رو چطوري تو دلفي استفاده کنم؟؟؟؟؟؟؟؟؟

aty7070
08-12-2010, 00:05
faghat zod javab bedid

aty7070
08-12-2010, 16:20
سلام
مثل اينکه هيچ راهي نيست که من بتونم بازيابي رو در يک پروژه انجام بدم.
حالا اگه ميشه يه راهنمايي به من بکنيد بگيد من چطوري مي تونم دو تا پروژه رو به هم ربط بدم طوري که پروژه اولي کاملا بسته بشه (مثل اين که دلفي رو بستم و با يک پروژه جديد باز کردم) و فرم پروژه دومي رو به من نشون بده بدون اينکه بخوام از برنامه خارج بشم.

M.Hashemi
08-12-2010, 19:25
با سلام
دستور زیر را در sql بنویسید و سپس اجراش کنید(با فشار دادن کلید F5 روی صفحه کلید)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پس از اجرای دستور بالا یک stored procedure در sql ساخته می شود به نام ProcName سپس در خود sql با دستور exec ProcName یا execute ProcName می توانید Stored Procedure را اجرا کنید.
اگر دستور بالا در sql کار کرد (امتحان نکردم)
برای این که از StoredProcedure در دلفی استفاده کنید می توانید از کامپوننت TAdoStoredProcedure و TAdoDataSet استفاده کنید.
پیروز باشید
با تشکر

aty7070
18-12-2010, 06:47
واقعا از همتون به خاطر کمک هايي که بهم کردين ممنونم.
پروژم رو تحويل دادم و 99 درصد هم بيست ميشم. سعي مي کنم کاري کنم که منم از فعالان اين انجمن بشم.