• Thứ Hai, 31/05/2010 09:54 (GMT+7)

    Kết nối CSDL MS SQL Server

    Lượt xem 17211
    Đánh giá

    Câu hỏi :

    Xin hướng dẫn viết chương trình kết nối CSDL SQL server lưu trên máy chủ.



    Trả lời :

    Về nguyên tắc, ứng dụng có thể truy xuất được database server cho dù nó nằm trên cùng máy hay trên máy khác miễn sao bạn biết chính xác địa chỉ của server database. Thật vậy, để kết nối với 1 database do server quản lý, ứng dụng cần xây dựng chuỗi ConnectionString miêu tả thông tin chi tiết về database cần truy xuất. Sau đây là một số chuỗi ConnectionString dùng các Provider khác nhau để truy xuất database do SQL Server quản lý:

    'khai báo biến
    Dim MyConString As String
    'thiết lập chuỗi ConnectionString đến database
    MyConString = "Provider=SQLNCLI;Server=HIEPCOMP\SQLEXPRESS; Database=mydatabase; Uid=sa;Pwd=luonghoa;Integrated Security=SSPI;"
    hay
    MyConString = "Provider=SQLOLEDB; Persist Security Info=False; SERVER=HIEPCOMP\SQLEXPRESS; UID=sa; PWD=luonghoa; Initial Catalog=mydatabase; Port=1433"

    hay
    MyConString = "Driver={SQL Server}; Server=HIEPCOMP\SQLEXPRESS; Uid=sa;Pwd=luonghoa;Database=MyDatabase"
    Mỗi chuỗi ConnectionString trong các thí dụ trên đều chứa nhiều tham số, trong đó 4 tham số chính yếu là địa chỉ SQL Server, tên database cần truy xuất, username và password được dùng để truy xuất database. Có thể bạn chưa rõ việc thiết lập tham số địa chỉ SQL Server. Nội dung của tham số này có dạng <tên máy>\<tên SQL server>, trong đó <tên máy> miêu tả tên gợi nhớ hay địa chỉ IP của máy chạy SQL server, còn <tên SQL Server> là tên của SQL Server mà bạn cần truy xuất. Thí dụ máy của tôi có tên là HIEPCOMP, tên SQL Server của tôi là HIEPDB thì tham số Server sẽ được viết:

    "Server=HIEPCOMP\HIEPDB"
    Tương tự, thí dụ máy SQL Server chạy ở địa chỉ IP là 172.1.2.3, tên SQL Server là HIEPDB thì tham số Server sẽ được viết:
    "Server=172.1.2.3\HIEPDB"
    Nếu dùng địa chỉ IP để nhận dạng máy server, bạn phải đảm bảo SQL Server cần truy xuất đã hỗ trợ protocol (giao thức) TCP/IP trong giao tiếp với các máy client. Bạn hãy tự mình (hay nhờ người quản lý SQL Server) chạy tiện ích quản lý cấu hình SQL Server (trên SQL Server 2005, tiện ích này có tên là "SQL Server Configuration Manager") để kiểm tra lại xem nó có hỗ trợ giao thức TCP/IP chưa, nếu chưa thì phải thiết lập lại cho server hỗ trợ giao thức này. Lưu ý rằng SQL Server có thể hỗ trợ đồng thời các giao thức khác nhau như Shared Memory, Named Pipes, TCP/IP, VIA.

    Người quản trị SQL Server (administrator) sẽ quản lý các account được phép truy xuất, mỗi account được nhận dạng bởi username/password gì, có quyền truy xuất nào trên các database nào... Chương trình muốn truy xuất database nào đó trên SQL Server, người lập trình (hay người dùng phần mềm đó) phải biết các thông tin truy xuất database gồm địa chỉ SQL Server (có dạng <tên máy>\<tên server>), tên database cần truy xuất, tên username/password được phép truy xuất database đó. Chỉ cần giá trị của 1 tham số trong chuỗi ConnectionString bị sai thì việc tạo Connection đến database sẽ bị thất bại và chương trình sẽ báo lỗi. Theo kinh nghiệm của chúng tôi, lỗi sai thường gặp nhất mà người lập trình mắc phải là khai báo sai địa chỉ của SQL Server, nhất là SQL Server chạy trên máy khác trong mạng.

    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Lập trình