Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: [Thảo luận] Tạo file Access trong ứng dụng C++ MFC

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    73

    Mặc định [Thảo luận] Tạo file Access trong ứng dụng C++ MFC

    Bình thường chúng ta có thể truy xuất CSDL từ một file Access (đã được tạo sẵn bằng Microsoft Acess) từ ứng dụng C++ MFC bằng các Class CDatabase và CRecordset. Nhưng giờ nếu chúng ta muốn tạo một file Access từ ứng dụng của chúng ta thì như thế nào. Qua tìm hiểu, em có biết 2 cách sau để tạo ra 1 file Access từ ứng dụng C++ MFC như sau:

    Cách 1 :

    Code:
    - Khai báo : CDaoDatabase newAccessFile;
     - Khởi tạo : newAccessFile.Create("Test.mdb");
     - Xây dựng CSDL trong file Test.mdb: Bằng cách dùng hàm Execute(Sqlcommand)
       Trong đó : Sqlcommand là các câu lệnh của Sql như : Creat table, Insert field,...


    Cách 2 :

    Code:
    - Cũng khai báo : CDaoDatabase newAccessFile;
     - Khởi tạo : newAccessFile.Create("Test.mdb");
     - Xây dựng CSDL trong file Test.mdb: Bằng cách sử dụng thêm Class CDaoTableDef. Cụ thể:
        + Khởi tạo Table : CDaoTableDef newAccessTable(&newAccessFile);
        + Tạo table : newAccessTable.Create(_("TestTable"); // Có một số thông số khác nếu cần thiết//
        + Tạo field trong table : newAccessTable.CreateField(_("TestField1"),dblong,dbAutoIncrField) 
        + Xác nhận tạo table xong : newAccessTable.Append();
        + Tạo nội dung cho field: newAcessTable.Excute(SqlCmd);

    Khi em dùng Cách 1 thì mọi việc đều suôn sẽ, có nghĩa là em tạo file Access đó từ ứng dụng của em xong, em mở nó bằng Microsoft Acess thì nó hiện ra đầy đủ những gì em đã tạo.

    Nhưng khi em dùng Cách 2 thì nó chỉ tạo ra file Access, còn những nội dung trong file Access đó như table name, field, content ,.. thì lại không có.

    Có điều, em thấy nếu dùng Cách 2 thì rất thuận tiện cho việc coding, chỉnh sủa và nâng cấp vì các bước rất rõ ràng nhưng em không thể hiểu tại sao Cách 2 lại không thể cho ra kết quá như Cách 1 được. Phải chăng có sự sai sót nào trong Cách 2 này của em. Nếu có anh chị nào đã từng làm qua điều này và có kinh nghiệm thì mong được thảo luận ở đây để em và những ai đang tìm hiểu về vấn đề này được rõ.

    P/S : Còn một vấn đề nữa, mà có thể em sẽ đề cập ở bài Thảo luận sau khi đã tìm hiểu là : Truy cập vào file Access 2007.

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    73

    Có bạn nào có thể trả lời dùm mình vấn đề ở trên được không?

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    73

    Oh, mình đã biết mình bị lỗi ở đâu. Té ra trong đống code tạo table và field

    Code:
    qlCreateTable.CreateField(_T("IDUSER"),dbInteger,2,dbAutoIncrField);
     qlCreateTable.CreateField(_T("HOTEN"),dbText,255,dbVariableField);
     qlCreateTable.CreateField(_T("NGAYSINH"),dbDate,8,dbUpdatableField);

    thì đoạn code :


    Code:
    qlCreateTable.CreateField(_T("IDUSER"),dbInteger,2,dbAutoIncrField);


    gây ra lỗi, nên không thể tạo được table name và các field còn lại. Mình sẽ tìm hiểu xem tại sao bị lỗi đó. Nhưng theo phỏng đoán chắc là do tham số dbAutoIncreField gây ra, vì nó có liên quan đến Primary Key trong Access thì phải.

Các đề tài tương tự

  1. Thao tác truy xuất dữ liệu từ file access trong C#
    Gửi bởi quanghoa trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-03-2013, 05:52 PM
  2. Hàm đọc từng từ một trong file txt bị lỗi Access Violation
    Gửi bởi xuanduc987 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 01-05-2012, 01:34 AM
  3. File.Move bị lỗi Access to the path is denied. Khắc phục thế nào?
    Gửi bởi churanluoi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 24-08-2011, 09:52 AM
  4. Cách tạo file *.mdb bằng access 2007 như thế nào?
    Gửi bởi minhnhut_1st trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 23-10-2010, 11:03 PM
  5. Làm sao đính kèm file vào csdl Access trong lập trình C#???
    Gửi bởi lammcathay trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 20-05-2009, 03:22 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn