• Thứ Hai, 17/08/2009 10:18 (GMT+7)

    Khắc phục lỗi "QueryInterface for interface SQLDMO.NameList failed" như thế nào?

    Câu hỏi :
    Đoạn code VB .Net sau khi chạy thì sinh lỗi: QueryInterface for interface SQLDMO.NameList failed. Xin chỉ giúp.
     Dim x As Long
     Dim sqlApp As New SQLDMO.Application
     Dim sqlNameList As SQLDMO.NameList
     sqlNameList = sqlApp.ListAvailableSQLServers
     For x = 1 To sqlNameList.Count
     cbo_Server.Items.Add(UCase(sqlNameList.Item(x)))
     Next
     Me.Show()
     

    Trả lời :
    Đoạn code VB .Net của bạn được viết đúng cú pháp và cũng chạy tốt. Nhiệm vụ của đoạn code trên là tìm và hiển thị tên của các SQL Server mà máy bạn có thể truy xuất được (hoặc chạy trên máy cục bộ hay trên máy mạng nào đó). Lưu ý rằng có 2 vấn đề liên quan đến đoạn code trên mà bạn cần chú ý:

     1. Đoạn code trên có sử dụng COM tên là "Microsoft SQLDMO", do đó bạn cần "add" COM này vào Project ứng dụng bằng cách chọn menu Project.Add Reference..., chọn tab COM rồi duyệt tìm và chọn mục "Microsoft SQLDMO Object Library" rồi chọn button OK.

     2. Để 1 SQL Server có thể truy xuất bởi client trên máy cục bộ hay trên máy khác trong mạng, nó nên được cấu hình và hỗ trợ giao thức TCP/IP. Để cấu hình giao thức làm việc cho SQL Server, bạn hãy chạy tool "SQL Server Configuration Manager", duyệt tìm các mục Protocol và thiết lập protocol TCP/IP về trạng thái Enable rồi khởi động lại máy (hay vào Control Panel.Administrative Tools, chạy icon Services, duyệt tìm mục "SQL Server...", Stop rồi Start lại nó) để các thông số vừa cấu hình lại bắt đầu có hiệu lực.
     
    Chuyên mục: Lập trình