الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعبئة Users في List Box

مغلق
بدأه Fmr4vb في 10 ديسمبر 2004 · 7 رد · 1,883 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤالي كي نستطيع ان نعبئ اسماء المستخمين (Users) المضافون في قاعدة البيانات Sql في List Bog في الفيجوال وكيف نستطيع ان نعرف User Index من خلال الكود

#2

هل السؤال غير واضح او ان الامر ليس له حل ام لا احد يعرف ؟؟ نريد رد واحد على الموضوع

#3

حتى نحصل على أسماء الحواسب الموجودة على الشبكة والمجهزة بنظام إدارة قواعد البيانات SQL Serverيجب علينا أن نسأل أنفسنا ما يلي :

عندما نعمل على الـ SQL Server Enterprise Manager يوفر لنا هذا النظام من استعراض جميع الحواسب الموجودة على الشبكة وحيث أنه منتج لمايكروسوفت , فبإمكانك

وباستخدام لغات برمجتها من أن تروض أي منتج لها كما تروض الـ Word أو Excel أو .........

ولذلك عليك أن تعلم أنه لا بد أن يكون هناك ملف DLL (يمثل مكتبة من مكتبات التي تدير البنية الداخلية لعمليات الـ SQL Server ) يوفر لنا إمكانية إنجاز عملية جلب أسماء

الحواسب الموجودة على الشبكة والمحملة بنظام الـ SQL Server وبالفعل اسم هذا الملف هو SQLDMO.DLL

وصدقوني بمعرفتكم للبنية الداخلية لهذا الملف تستطيعوا أن تفعلوا ماتريدوا بنظام الـ SQL Server من إنشاء قاعدة بيانات أو عمل نسخ احتياطي لها أو ربط لها أن كانت خارج

الخدمة أو حذفها أو تشغيل محرك قواعد بيانات الـ SQL Server أو إيقافه عن العمل أو إطفاؤه أو أو أو ..............

على كل مايهمنا هنا هو كيف نحصل على أسماء الحواسب الموجودة على الشبكة والمجهزة بنظام الـ SQL Server :

اعذروني لأن الكود الذي سأكتبه هنا هو بلغة الـ VB6 وليس بلغة الـ VB.NET وذلك لأن بعض الأمور الذي سأستخدمها من مكتبة الـ SQLDMO.DLL مبنية على أساس واجهات

بلغة الـ C++ وليست مؤمنة على أساس توابع أو إجرائيات تستطيع التعامل معها مباشرةً (أرجوا أن يكون كلامي مفهوم) وبما أننا لا نملك الكود الأساسي لهذه المكتبة لكي

نعدله فيجب علينا أن نلتف على الموضوع : بكل بساطة الكود الذي سأقدمه يعمل على الـ VB6 بدون أي مشاكل , أما على الـ VB.NET فلن يعمل معك , لذلك قم ببناء مكتبة

DLL تحتوي على تابع يقوم بهذه المهمة واستدعي هذه المكتبة من الـ VB.NET :

سأعيدكم الآن الى معشوقكم القديم الـ VB6 :

افتح مشروع جديد في الـ VB6 وأضف إليه زراً وصندوق لائحة ComboBox

قم بإضافة مرجع الى مكتبة الـ SQLDMO.DLL من القائمة Project\Add Reference

اكتب الكود التالي في حدث النقر على الزر:

Code :  vbnet


Private Sub Command1_Click()
  ' Define SQL Server Application
  Dim oSQLServerApp As SQLDMO.Application
  Dim i As Integer
  'Use the SQL DMO Application Object to find the available SQL Servers
  Set oSQLServerApp = New SQLDMO.Application
  ' Define Name List witch will be contain all available sql server
  Dim namX As NameList
  
  Set namX = oSQLServerApp.ListAvailableSQLServers
  ' Begin fill comboBox with available sql server on network
  Combo1.AddItem "(local)"
  For i = 1 To namX.Count
    Combo1.AddItem namX.Item(i)
  Next
  'Show top server
  Combo1.ListIndex = 0
  Set oSQLServerApp = Nothing
End Sub

منقووووووووووووووووول من Parmaja_com

#4

يا اخ Fmr4vb اطال الله فى عمرك و لا ترك لك موضوع بدون ردود ... موضوعك طرح يوم 10 و تريد له حل يوم 11 اصبر ما زلنا نبحث

و قد لا نستطيع معرفة الحل كل على حسب علمه

وكما قال mn_902 ال SQL-DMO رائعه بالفعل و يمكنك رؤية مواضيع فى منتدى الفيجوال بيسك دوت نيت استخدمنا فيها ال SQL-DMO اظنه موضوع واحد فقط لمعرفة ال SQL -SERVER الموجوده فى الشبكه

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 12 ديسمبر 2004 في 20:04

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

استخدم الاجراء المخزن sp_helpuser ثم قم بعمل دواره لملئ ال combo box

مرفق مثال بالفيجوال بيسك دوت نيت من نوع ال console

all_db_users.rar

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#6

شكراً لك اخي mn_902 على على هذا الرد الرائع وقد كنت سألت عن تعبئة اسماء المستخدمين في ListBox او ComboBox وليس اسماء الكوبيوترات الموجودة على الشبكة ولكن هذا الكود من الامور المهمة جداً بالنسبة لي وايضاً لكل من يستخدم الشبكة و Sql بشكل او بآخر ,,

وشكري ايضاً لك يا استاذ طارق على ردك واعذريني اذا كان ردي السابق قد ازعجك ولكن اهتمامي ب SQL وحرصي الشديد على معرفة كل صغيرة وكبيرة فيه يجعلني أكون مستعجلاً في معرفة الحلول وهذا لكوني عندي خبرة جيدة في الفيجوال بيسك وقواعد البيانات الاكسس ولكن Sql هي المرحلة الحالية بالنسبة لي وإن شاء الله سوف ترى نتائج اسئلتي الكثيرة تعود على خدمة هذا المنتدى الرائع وخدمة كل مرتادية بإذن الله والله يكتب لنا ولكم الاجر في علمنا هذا .

واخيراً ارجو ان تقبل اعتذاري مره اخرى

#7

نسيت ان اقول يا اخ طارق انني استخدم VB6 ولا استخدم VB.Net فاذا امكن وضع الكود فقط على المنتدى او وضعه في ملف نصي مرفق لردك إن شاء الله .

#8

للاسف لن يمكنك تطبيق الكود فى الفيجوال بيسك 6

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlClient.SqlConnection
Imports System.Data.SqlClient.SqlDataReader
Module Module1

  Sub Main()
    Dim cn As New SqlConnection()
    cn.ConnectionString = "data source=(local);initial catalog = test;integrated security = true;"

    'command object properties
    Dim cmd As New SqlCommand()
    With cmd
      .Connection = cn
      .CommandType = CommandType.Text
      .CommandText = "exec sp_helpuser"
    End With

    cn.Open() 'open connection

    Dim i As Integer 'counter for the users
    Dim dr As SqlDataReader 'declare a reader
    dr = cmd.ExecuteReader 'instantiate the reader

    Do While dr.Read
      Console.Write(dr.Item(i))
      Console.ReadLine()
    Loop

    cn.Close() 'close connection

  End Sub

End Module

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

هذا الموضوع مغلق.

مواضيع مشابهة