View Full Version : چگونگی تشخیص نصب بودن2000 sql server
  
davodsharif
دوشنبه 10 فروردین 1388, 01:24 صبح
سلام دوستان :
چطور میتونیم ببینیم آیا sql server 2000 نصب است 
و چطور از وجود database و table  خودم مطمئن بشم ؟
daffy_duck376
دوشنبه 10 فروردین 1388, 15:44 عصر
دوست عزیز با یه دستور TRY ,ecxept  میتونی چک کنی اگر SQL  نصب باشه و بانک شما نصب دستورات تو TRY اجرا میشه  مگر نه دستورات توی ECXEPT  مثلا تو قسمت try  سعی کنی به بانکت وصل بشی اگه تونستی که بانک نصبه و sql  هم نصبه اگه نتونستی پس نصب نیست دیگه دستورات ecxept اجرا میشه
davodsharif
چهارشنبه 12 فروردین 1388, 20:37 عصر
سلام دوست عزيز  . ممنون از لطفطون بابت جواب
خاصيت connectionstring  رو تو properties مقدار دهي ميكنم . اما گاهي از اوقات ( وقتي كه كاربر database يا sqlserver يا هر دو  رو پاك ميكنه برنامه error  ميده . من ميخوام اگه اس كيو ال پاك شده اون رو نصب كنم ولي اگه database پاك شده بود فقط ديتابيس رو  restore كنم . 
تو formshow فرم اصلي تو  try ،   خاصيت connection string رو مقدار دهي كردم اما باز هم خطا داد (access violatin) .  با Eaccessviolaton هم نتونستم خطا يابي كنم
try 
adoconnection1.connectionstring  :=.......
except
on eaccessviolation do ...
end
merced
پنج شنبه 13 فروردین 1388, 03:38 صبح
sp_helpdb
يك پروسيجر براي ديدن ديتابيس هاي موجود
shervin farzin
پنج شنبه 13 فروردین 1388, 04:23 صبح
سلام
وقتي دنبال جواب در Google ميگرديد عمدتا اشاره به استفاده از كليدهاي رجيستري كردن .
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER
وقتي SQL نصب ميشه ، يه سرويس به سرويسهاي سيستم عامل اضافه ميشه كه در اين صورت
كليد رجيستري فوق بايد وجود داشته باشه .
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSSQLSERVER \ MSSQLSERVER
با نصب خود SQL Server 2000 هم كليدي به وجود مياد كه در آدرس بالا مشاهده ميكنيد ، پس
اگه اين كليد باشه ، SQL هم نصب شده .
اما در دو حالت هست كه راههاي بالا جواب درست رو نشون نميدن .
اول : كاربر SQL رو درست Uninstall نكرده پس كليدهاي فوق همچنان سر جاي خودشون هستن
دوم : كليد رجيستري شماره 2 كه نوشتم فقط و فقط براي نگارش 2000 به وجود مياد و در
نگارشهاي بعدي موقعيت كليد متفاوت از چيزي كه الان مي بينيد .
بنابر اين روشهاي رجيستري خيلي قابل اعتماد نيستند .
من در Blog.MSDN كدي به زبان #C پيدا كردم كه به سوال شما جواب ميده . من با #C آشنايي
ندارم اما گمان ميكنم كه از پارامتري در رابطه با Service هاي سيستم عامل استفاده ميكنه .
http://blogs.msdn.com/sqlserverfaq/archive/2009/03/07/how-to-detect-sql-server-instances-features-installed-on-a-machine.aspx
اگه با #C كار كرديد يه نگاهي به اين برنامه بندازيد شايد قابل تبديل و استفاده باشه .
اگه database پاك شده بود فقط ديتابيس رو restore كنم .
براي اين كار Connect بشيد به Master Database . بعد روالي با نام SP_Helpdb رو اجراء كنيد .
در خروجي اين اجراء دو ستون هست به نامهاي Name و dbid كه براي كار شما مهم هستن .
تمام database هاي ساخته شده توسط كاربر مقداري بزرگتر از عدد 6 در ستون dbid دارند و
نام تمام database هايي كه در حال حاضر به SQL Server متصل هستند در ستون Name قرار داره .
براي اين كه چك كنيد آيا Database شما Attach شده يا نه مشابه اين كد بايد بنويسيد :
 ADOQuery1.SQL.Text:='exec sp_helpdb';
 ADOQuery1.Open;
 while not dm.ADOQuery1.Eof do
   begin
     if (ADOQuery1.FieldValues['dbid'] > 6) and (dm.ADOQuery1.FieldByName('name').AsString= *mydatabase_name* ) then //  do something
     dm.ADOQuery1.Next;
   end;
البته راههاي بهتري هم شايد باشه . پس به جستجو تون ادامه بديد .
موفق باشيد .
davodsharif
جمعه 14 فروردین 1388, 00:55 صبح
ممنون بابت جواب
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.