PDA

View Full Version : ایراد در استفاده از SP



mahak_f
دوشنبه 15 آبان 1385, 12:18 عصر
را Attach کردن بانکهای برنامم در VB6 کد نوشتم. اما بعد اجرا این error رو میده :
Device activation error. The physical file name'H:\Documents and Settings\Najme\Desktop\New Folder\data\ALLDATA.mdf may be incorrect.
اسم بانکی که باید Attach شه ALLDATA هست.
من برنامه رو با بانکهای خود SQL تست کردم مثلا Pubs رو به SQL Server اتچ کردم. برنامه کار میکنه. حتی بعد از stop کردن سرویس SQL بانک Pubs رو تو همین ادرس فیزیکی که ازش ایراد میگیره کپی کردم. این بار هم برنامه بدون ایراد اجرا شد.
با این تفاصیل مشکل کار کجاست؟ ایراد از ساختار بانکهای منه یا ....؟ البته بگم که بدون مشکل همین بانکها رو به صورت دستی از داخل Enterprise manager می تونم Attach کنم یا با داده هاش کار کنم.
اینم کد برنامم تو VB6: که اپلودش کردم. خیلی کوچولو و سادست.
Private Sub Form_Load()
Dim sql As String
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
'sql1 = "EXEC sp_helpdb ALLDATA_DATA"
'sql = "EXEC sp_detach_db 'pubs', 'true'"
With cnn
.ConnectionString = Adodc1.ConnectionString
.CursorLocation = adUseClient
.Open
End With
'Set rst = cnn.Execute(sql1)
'Set rst = cnn.Execute(sql)
sql = "EXEC sp_attach_db @dbname = N'ALLDATA',@filename1 = N'" + App.Path + "\data\ALLDATA.mdf',@filename2 = N'" + App.Path + "\data\ALLDATA_log.LDF'"
Set rst = cnn.Execute(sql)
Adodc1.Refresh

End Sub

h_baqery
دوشنبه 15 آبان 1385, 13:20 عصر
شاید مشکل آدرس است چون بعضی اوقات وقتی در نام پوشه ها از فاصله استفاده شده باشه درست تشخیص نمی ده . مثلا با نام "newfolder" بدون مشکل ولی با "new folder" مشکل داره.

AminSobati
دوشنبه 15 آبان 1385, 14:25 عصر
درایو H آیا Local محسوب میشه برای SQL Server؟

mahak_f
دوشنبه 15 آبان 1385, 17:05 عصر
درایو H درایویه که Windows و Sql Server روش نصبن.
--------------------

شاید مشکل آدرس است چون بعضی اوقات وقتی در نام پوشه ها از فاصله استفاده شده باشه درست تشخیص نمی ده . مثلا با نام "newfolder" بدون مشکل ولی با "new folder" مشکل داره.
نه همونطور که گفتم دقیقا این برنامه رو با همین ادرس برا یکی از بانکهای SQL اجرا کردم. یعنی بعد از stop کردن سرویس SQL بانک Pubs رو تو همین ادرس فیزیکی که ازش ایراد میگیره کپی کردم بدون ایراد کار میکنه!

AminSobati
دوشنبه 15 آبان 1385, 21:33 عصر
روی سرور سعی کنید با Enterprise Manager یکبار Attach کنید تا از عادی بودن اوضاع مطمئن بشید (مثلا فایل مشکل نداشته باشه و...)
بعد اگر ok بود به برنامه خودتون شک کنین...

mahak_f
سه شنبه 16 آبان 1385, 13:08 عصر
روی سرور سعی کنید با Enterprise Manager یکبار Attach کنید تا از عادی بودن اوضاع مطمئن بشید (مثلا فایل مشکل نداشته باشه و...)
بعد اگر ok بود به برنامه خودتون شک کنین...
بدون مشکل همین بانکهایی که برنامه ازش ایراد میگیره رو به صورت دستی از داخل Enterprise manager می تونم Attach کنم یا با داده هاش کار کنم.
و ازاون طرف همین برنامه رو با بانکهای خود SQL تست کردم مثلا Pubs رو به SQL Server اتچ کردم. برنامه کار میکنه.
حتی بعد از stop کردن سرویس SQL بانک Pubs رو تو همین ادرس فیزیکی که ازش ایراد میگیره کپی کردم. این بار هم برنامه بدون ایراد اجرا شد.
چیز دیگه ای به نظرتون نمی یاد؟

AminSobati
سه شنبه 16 آبان 1385, 13:54 عصر
از sp_attach_db در Query Analyzer استفاده کنید که مطمئن بشین شیوه کارتون درسته، بعد با کد تطبیق بدین

mahak_f
چهارشنبه 17 آبان 1385, 16:10 عصر
توی Query Analyzer هم دقیقا همین ایراد (5505 اگه اشتباه نکنم) رو میده.

AminSobati
چهارشنبه 17 آبان 1385, 22:19 عصر
جای دیگه ای موفق شدین این بانک رو Attach کنین؟ یعنی خود فایل سالمه؟

mahak_f
پنج شنبه 18 آبان 1385, 11:10 صبح
این بانکها رو میتونم به صورت دستی ازداخل Entrprise Manager بدون ایراد اتچ کنم. یعنی با کلیک راست روی Databases و انتخاب All Task و بعدش هم Attach database
برا تست بانکهام هم که شده یه دیتابیس ساختم تو یه ادرس دیگه از هارد. وقتی خواستم از طریق VB6 این بانکهای جدید رو اتچ کنم باز هم همون ایراد Device Activation Error رو میده !! اما برا خود بانکهای SQL همچین ایرادی نمیگیره و برنامه کار میکنه.
یعنی نه میشه کامل به برنامه VB شک کرد و نه میشه به خرابی بانکهام!

AminSobati
پنج شنبه 18 آبان 1385, 21:58 عصر
Profiler رو فعال کنین و بعد از طریق Enterprise Manager کار Attach رو انجام بدین. ببینین دقیقا چه دستوری داره اجرا میشه

mahak_f
سه شنبه 23 آبان 1385, 10:46 صبح
Profiler رو فعال کنین و بعد از طریق Enterprise Manager کار Attach رو انجام بدین. ببینین دقیقا چه دستوری داره اجرا میشه

جناب ثباتی عزیز با فعال کردن Profiler تونستم مشکلم رو حل کنم.
راستش من اینبار خیلی مستاصل شده بودم و گیج!
راهنمایی های قدم به قدم این بار به من خیلی کمک کرد. مثلا من مجبور شدم برای اولین بار برم و درباره Profiler بخونم یا حتی باهاش کار کنم.
نه بخاطر درست شدن این مشکل که برا تشویق به یادگیری که اینجا برام شد میخوام تشکر کنم...

M.a.K.o
یک شنبه 09 اردیبهشت 1386, 17:03 عصر
من هم برای اولین با از profiler استفاده کردم واقعاً ابزار جالبی است من همیشه مشکلات خود را در این زمینه با سختی زیادی حل می کردم اما profiler کوتاه ترین راه است.