نمایش نتایج 1 تا 14 از 14

نام تاپیک: queryinterface for interface sqldmo.namelist failed

  1. #1

    queryinterface for interface sqldmo.namelist failed

    باسلام
    من با vb2003.net کار می کنم . می خواهم لیست تمام sqlserverهای روی شبکه رو در یک کومبوباکس نمایش بدهم . کد زیر رو می نویسم ولی error می ده .


    Dim i As Integer

    goSQLServerDMOApp = New SQLDMO.ApplicationClass
    Dim namX As SQLDMO.Names
    namX = goSQLServerDMOApp.ListAvailableSQLServers()
    For i = 1 To namX.Count
    cmbserver.Items.Add(namX.Item(i))
    Next
    cmbserver.SelectedIndex = -1

    این error هستش :

    queryinterface for interface sqldmo.namelist failed
    در ضمن این کد در وبی 6 به خوبی کار می کنه ولی در 2003 مشکل داره .
    باتشکر
    راستی من وقتی کدهامو در ادیتور برنامه نویس می نویسم ، آشفته و قاطی - پاطی می شن . باید چیکار کنم که این مشکل واسم پیش نیاد؟

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    دوست عزیز من زیاد با VB.net کار نکردم بنابراین کد آنرا با C#‎ می نویسم، امیدوارم مورد استفاده قرار بگیره.برای این کار شما باید از کلاس SqlDataSourceEnumerator استفاده کنید.

    System.Data.DataTable dt = new DataTable();
    dt = System.Data.Sql.SqlDataSourceEnumerator.Instance.G etDataSources();
    foreach (DataRow dr in dt.Rows)
    {
    Console.WriteLine(dr["ServerName"].ToString());
    }
    Console.ReadLine();
    راستی من وقتی کدهامو در ادیتور برنامه نویس می نویسم ، آشفته و قاطی - پاطی می شن . باید چیکار کنم که این مشکل واسم پیش نیاد؟
    شما باید کد خود را در تگ [ code ] بگذارید و بعد آنرا ببندید (به راهنمای سایت توجه کنید)

    لطفا در صورتی که جواب گرفتید پست خود را از بخش پایگاه داده پاک کنید و به قوانین سایت بیشتر توجه کنید.
    با تشکر
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    نقل قول نوشته شده توسط tayebeh مشاهده تاپیک
    راستی من وقتی کدهامو در ادیتور برنامه نویس می نویسم ، آشفته و قاطی - پاطی می شن . باید چیکار کنم که این مشکل واسم پیش نیاد؟
    سلام

    کدهاتون رو به شکل زیر بنویسید

    کلمه code رو داخل علامت قلاب یا [] قرار بدید بعد کدهاتون رو بنویسید و اخر هم

    کلمه /code را داخل علامت قلاب قرار بدید علامت / باید اخرش باشه

    در مورد کد بالا هم تست می کنم و بهتون نتیجه رو می گم

  4. #4
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام

    کد شما که برای من تعداد سرورها رو صفر بر می گردوند

    ولی این کد زیر کد تبدیل شده اقای whitehat هست ببین برای شما کار می کنه یا نه



    Dim dt As System.Data.DataTable
    dt = New DataTable()
    dt = System.Data.Sql.SqlDataSourceEnumerator.Instance.G etDataSources()
    ForEach dr As DataRow In dt.Rows
    Console.WriteLine(dr("ServerName").ToString())
    Next dr



    در ضمن می تونی به جای خطی که توش console نوشته از کد زیر هم استفاده کنی که

    نام سرور ها رو توی listbox می ریزه


    ListBox1.Items.Add((dr("ServerName").ToString))

    به من هم خبرشو بده

  5. #5
    باسلام
    من با دات نت فریم ورک 1 کار می کنم و همچین کلاسی نمی بینم . احتمالا شما با ورژن دیگه ای ازدات نت فریم ورک کار می کنید . درسته؟

  6. #6
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    نقل قول نوشته شده توسط tayebeh مشاهده تاپیک
    باسلام
    من با دات نت فریم ورک 1 کار می کنم و همچین کلاسی نمی بینم . احتمالا شما با ورژن دیگه ای ازدات نت فریم ورک کار می کنید . درسته؟

    بله فکر کنم شما باید ارتقا بدید نسخه وی بی تون رو من از وی بی دات نت 2005 با

    فریم ورک 2 استفاده می کنم

    در ضمن در مورد ارتقا وی بی هم بگم فکر کنم اگه صبر کنید بهتر باشه چون نسخه اخرش

    برای سال 2005 بود و امسال سال 2007 هست احتمالش هست که مایکروسافت حرفی

    از نسخه جدید پیش بکشه

    بازهم هیچی معلوم نیست ممکنه بره تا اخر سال 2007

  7. #7
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    من با دات نت فریم ورک 1 کار می کنم و همچین کلاسی نمی بینم . احتمالا شما با ورژن دیگه ای ازدات نت فریم ورک کار می کنید . درسته؟
    ببخشید من به صورت سوال توجه نکردم ، درسته من با 2005 این کد را نوشتم .برای این کار در 2003 می توانید از SQLDMO استفاده کنید .البته راههای دیگری نیز وجود دارد ، تابعی برای این کار در SQL وجود دارد اما آنرا به خاطر ندارم !
    ابتدا Microsoft SQLDMO را به Refrence های خود اضافه کنید (در تب COM می توانید آنرا پیدا کنید)سپس از کد زیر استفاده کنید:

    SQLDMO.ApplicationClass mSQL=new SQLDMO.ApplicationClass();
    SQLDMO.NameList mServerNames =mSQL.ListAvailableSQLServers();
    foreach (string str in mServerNames )
    {
    this.listBox1.Items.Add(str);
    }
    اگر دوستان لطف کنند آنرا به VB تبدیل کنند
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  8. #8
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    اینم کد VB (نمی دونم تابع foreach در VB چرا error می دهد)

    Dim mSQL As New SQLDMO.Application()
    Dim mServerNames As SQLDMO.NameList
    Dim i As Integer

    mServerNames = mSQL.ListAvailableSQLServers
    For i = 1 To mServerNames.Count
    Me.listBox1.Items.Add(mServerNames.Item(i))
    Next
    کلید جستجو : SQL Server List - لیست سرور های SQL - شبکه - ServerList - SQLServerList
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  9. #9
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام

    اقای white hat هیچ کدوم از کدهای بالا برای من جواب نداد یعنی هیچ مقداری به listbox

    اضافه نمی شه نمی دونم باید توی شبکه برنامم باشه تا جواب بده یا اینکه نیازی به شبکه

    نیست و باید با sqldmo ارتباط به دیتابیس رو اول برقرار کنم تا کد ی که گفتید جواب بده

    در ضمن این مشخصات سیستم بنده هست

    ویندوز xp سرویس پک 2

    dotnet framework2

    microsoft visual studio 2005

    حالا مشکل از کجاست که مقدار بر نمی گردونه ؟

  10. #10
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    بر روی Local تست نکردم اما بر روی شبکه (در صورتی که فایروال مانع آن نشود) بخوبی کار می کند. در حالتی که به شبکه وصل نباشید کد شما کار نخواهد کرد. اما اگر می خواهید نام سرور Local را بدست آورید راههای مختلفی وجود دارد. مثل استفاده از hostname در کلاس socket یا ...
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  11. #11
    با سلام
    جناب آقای whitehat کد جنابعالی دقیقا مثل کد اولیه خود من هست . همانطور که قبلا گفتم این کد در وبی 6 و در سی جواب می ده ولی در وبی دات نت 2003 جواب نمی ده . حالا چراشو نمی دونم . فقط یه کمی که سرچ کردم چندجا نوشته بودند که باید آخرین پکهای اس کیو ال سرور 2000 رو نصب کنم تا این مشکل حل بشه . نمی دونم در نسخه 2005 اس کیوال سرور این مشکل هست یا نه ؟
    بیشتر تلاش می کنم و چنانچه به جواب رسیدم ، حتما اینجا توضیح می دم .
    باتشکر

  12. #12
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    این کد در vb.net 2003 جواب داد.
    آیا شما dll مربوطه را import می کنید؟
    در صورتی که error خاصی می گیرید ، در اینجا درج کنید.
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  13. #13
    این کد در vb.net 2003 جواب داد.
    آیا شما dll مربوطه را import می کنید؟
    در صورتی که error خاصی می گیرید ، در اینجا درج کنید.
    چه ddl هست ؟

  14. #14
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    - در پنجره Solution خود بر روی refrences راست کلیک کنید.
    - سپس Add Refrences را انتخاب کنید
    - تب COM را انتخاب کنید
    - Microsoft SQLDMO Object Library را انتخاب کنید
    -----------------
    سپس برای استفاده از آن کد زیر را به ابتدای پروژه اضافه کنید(پس از این کار Namespace SQLDMO به لیست فضاهای نام شما اضافه شده)

    using SQLDMO

    (فکر می کنم در VB باید از import استفاده کنید)
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

تاپیک های مشابه

  1. restore with sqldmo
    نوشته شده توسط hamedr در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 22 اردیبهشت 1386, 09:05 صبح
  2. queryinterface for interface sqldmo.namelist failed
    نوشته شده توسط tayebeh در بخش SQL Server
    پاسخ: 1
    آخرین پست: دوشنبه 02 بهمن 1385, 16:17 عصر
  3. مشکل با SQLDMO و عمل RESTORE کمک کنید
    نوشته شده توسط davood110 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: سه شنبه 05 اردیبهشت 1385, 08:31 صبح
  4. مشکل Connection Failed و ....
    نوشته شده توسط nasr در بخش SQL Server
    پاسخ: 3
    آخرین پست: چهارشنبه 20 مهر 1384, 09:17 صبح
  5. JIT Failed
    نوشته شده توسط faramarz_s در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: پنج شنبه 03 مهر 1382, 15:55 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •