ورود

View Full Version : پیدا کردن مسیر بانک مورد نظر در SQL



rezaei manesh
پنج شنبه 31 شهریور 1384, 07:08 صبح
سلام
من چطور می تونم پیدا کنم که بانکم در کدام مسیر قرار داره(Attach شده)؟؟؟؟؟؟؟
در ضمن اگه کسی دستور start کردن sql رو هم می دونه بگه ممنون می شم؟

حمیدرضاصادقیان
پنج شنبه 31 شهریور 1384, 22:33 عصر
دوست عزیز برای start کردن دستوری نداره
میتونی از دستور Net start {service name} in cmd prompt استفاده کنی.
و نام سرویس SQL رو بنویسی در Command ویندوز تا سرویس اجرا شود.

rezaei manesh
شنبه 02 مهر 1384, 08:33 صبح
سلام دوست گرامی
من می خوام از توی برنامه که با وی بی دات نت هم می نویسم اینکار صورت بگیره اگه می شه لطفا بیشتر راهنمایی کنید.
در مورد پیدا کردن مسیر هم اگه اطلاعاتی دارید منو راهنمائی کنید؟

m-khorsandi
شنبه 02 مهر 1384, 08:57 صبح
درود

شما میتونید از جدول sysdatabases که در Master, DataBase قرار داره استفاده کنید.(فیلد filename)

rezaei manesh
شنبه 02 مهر 1384, 09:40 صبح
سلام
من یکمی دیر می گیرم
اگه میشه یه نمونه کد بدین من خیلی ممنون می شم من از متن بالا چیزی نفهمیدم!!!؟

m-khorsandi
شنبه 02 مهر 1384, 10:22 صبح
Select * From master.dbo.sysdatabases


یا



Use Master
select * from sysdatabases

Achchan
شنبه 02 مهر 1384, 11:50 صبح
شما میتونید از جدول sysdatabases که در Master, DataBase قرار داره استفاده کنید.(فیلد filename


اگه میشه یه نمونه کد بدین من خیلی ممنون می شم من از متن بالا چیزی نفهمیدم!!!؟
Which part of such an obvious reply is confusing you.Don't you know how to select from sysdatabases or sysfiles? Or you want just a fish and lazy to learn about fishing?
Search in google and you can find many many links for such topics.
-A man's reach should exceed his grasp,or what the heavens for? Good luck!

rezaei manesh
شنبه 02 مهر 1384, 14:37 عصر
سلام
ممنون خیلی کد عالی بود من با یکمی تغییر به خواستم رسیدم
الان فقط مشکلم restart sql هستش؟!!! در این ضمینه هم یه سری کمک کردین؟ اما من هنوز نتونستم.
مشکل من اینه که چطور از توی برنامه یه دسنور رو توی محیط command prompt اجرا کنم؟!
با تشکرات فراوان

AminSobati
یک شنبه 03 مهر 1384, 09:34 صبح
دوست عزیزم،
مایکروسافت انجام Query به طور مستقیم از جداول سیستمی رو توصیه نمیکنه چون تضمینی نیست که در نسخه های بعدیه SQL Server، ساختار جداول سیستمی ثابت بمونه. لذا ما باید از دستورات سیستمی استفاده کنیم چون اونها در هر نسخه، ساختاری که ما انتظارش رو داریم به ما ارائه میدن. برای هدف شما:


exec sp_helpdb 'northwind'

rezaei manesh
یک شنبه 03 مهر 1384, 12:22 عصر
سلام
خوب این خوبه اما
چطور باید فقط مثلا filename اونو انتخاب کنم؟

AminSobati
یک شنبه 03 مهر 1384, 14:23 عصر
sp_helpdb دو سری Result Set برمیگردونه. اگر با DataReader در محیط VS.NET کار میکنین، از متد NextResult استفاده کنین تا Result دوم رو بدست بیارین. حالا دیگه ستون مورد نظر (نام فایلها) در دسترس شما قرار میگیره

rezaei manesh
یک شنبه 03 مهر 1384, 14:55 عصر
سلام
"' strquery = "exec sp_helpdb 'commite5
(Dim cmdE As SqlCommand = New SqlCommand(strquery, cnndatabase
Dim dataR As SqlDataReader
dataR = cmdE.ExecuteReader
() dataR.NextResult
("strquery = dataR.Item("fileName
() dataR.Close
من از این کد استفاده کردم اما error می دیه؟
کجای کارم اشتباه هستش؟

Achchan
یک شنبه 03 مهر 1384, 15:52 عصر
Hi,
You have done this in vb,what if you want to do the same thing in Server-side?Thinik about not returning the whole cursor to client-side(your application) and only the desired field(here filename)? What should you do?
Think about it,my friend,think about it!

m-khorsandi
یک شنبه 03 مهر 1384, 16:44 عصر
دوست عزیز،
من پیشنهاد میکنم این سئوال رو در بخش VB بپرسید.

AminSobati
یک شنبه 03 مهر 1384, 17:52 عصر
Hi,
You have done this in vb,what if you want to do the same thing in Server-side?Thinik about not returning the whole cursor to client-side(your application) and only the desired field(here filename)? What should you do?
Think about it,my friend,think about it!
SPهایی که چند Result Set دارند رو سمت سرور نمیتونین تمام Resultهایش رو پردازش کنین

AminSobati
یک شنبه 03 مهر 1384, 17:53 عصر
سلام
"' strquery = "exec sp_helpdb 'commite5
(Dim cmdE As SqlCommand = New SqlCommand(strquery, cnndatabase
Dim dataR As SqlDataReader
dataR = cmdE.ExecuteReader
() dataR.NextResult
("strquery = dataR.Item("fileName
() dataR.Close
من از این کد استفاده کردم اما error می دیه؟
کجای کارم اشتباه هستش؟
دوست عزیزم شما چرا Read انجام نمیدین!


Dim rdr As SqlClient.SqlDataReader
Dim cnn As New SqlClient.SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.")
cnn.Open()
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = cnn
cmd.CommandType = CommandType.Text
cmd.CommandText = "exec sp_helpdb 'master'"
rdr = cmd.ExecuteReader
rdr.NextResult()
rdr.Read()
Debug.WriteLine(rdr.Item("filename"))

Achchan
دوشنبه 04 مهر 1384, 14:57 عصر
You can't select only one field of sp_helpdb's output.You may want to create a temporary table and insert the output of this procedure in that.Then you could selet filename from that temporary table.

m-khorsandi
دوشنبه 04 مهر 1384, 16:37 عصر
دقیقا"،
آقای ثباتی موردی که شما فرمودین رو من امتحان کردم ، البته با دلفی نه با VB و با ResultSet دوم تونستم با فیلدهایی
مثل name, fileid, filename, filegroup, size, maxsize, growth, usage کار کنم.

rezaei manesh
سه شنبه 05 مهر 1384, 14:25 عصر
سلام
خیلی ممنون مشکلم حل شد
با تشکرات فراوان

Achchan
سه شنبه 05 مهر 1384, 15:55 عصر
SPهایی که چند Result Set دارند رو سمت سرور نمیتونین تمام Resultهایش رو پردازش کنین
Ok,my question was more general: What about a single cursor procedure? Assume: sp_who or sp_who2,one wants to get only one of the fields of sp_who or sp_who2,what should s/he do? He knows ,he could return all resul to client side and there select the desired filed,but this is not efficient especially in slow networks.So think about a better solution!
-Good luck!