DLL kết nối CSDL từ Game Maker

Thảo luận trong 'Game Development' bắt đầu bởi anhchanghaudau, 5/5/06.

  1. anhchanghaudau

    anhchanghaudau Youtube Master Race

    Tham gia ngày:
    25/2/06
    Bài viết:
    51
    Đây là cái ado.dll dùng connect các loại CSDL từ Game Maker, giải quyết được vấn đề dùng Access khi phân phối game của Game Maker (Nó chỉ có thể connect tới các CSDL mà ADO support). Mô tả hoạt động:
    Chỉ có 1 Connect tới 1 CSDL tại 1 thời điểm.
    Có tất cả 10 Recordset trong bộ nhớ, mỗi khi Open 1 cái thì nó sẽ trả về ID từ 1-10 của Recordset được mở. CSDL chỉ hỗ trợ 2 kiểu dữ liệu là chuỗi và số thực vì GM chỉ cho export 2 kiểu này. Hỗ trợ gần các method thông dụng của Recordset để xử lý dữ liệu.
    Sau đây là prototype của các hàm trong dll, double = real (GM), char* = string(GM). Chú ý phân biệt hoa thường. Các tham số xin đọc thêm ADO help để hiểu rõ hơn và biết các giá trị truyền vào. Nếu có gì thắc mắc thì gửi mail cho mình (anhchanghaudau@yahoo.com) hoặc post lên diễn đàn cũng được.


    // lấy giá trị chuỗi từ 1 tên field
    char* getString(double RecID, char* Field);
    double setString(double RecID, char* Field, char* Value);
    // lấy giá trị số từ 1 tên field
    double getNumber(double, char*);
    double setNumber(double, char*, double);
    // di chuyển
    // di chuyển số bước Step tại vị trí bắt đầu di chuyển Start
    double move(double RecID, double Step, double Start);
    double moveFirst(double RecID);
    double moveLast(double RecID);
    double moveNext(double RecID);
    double movePrevious(double RecID);
    // bof, eof
    double eof(double RecID);
    double bof(double RecID);
    // thuộc tính
    double getAbsolutePosition(double RecID);
    double setAbsolutePosition(double RecID, double Value);
    double getEditMode(double RecID);
    char* getFilter(double RecID);
    // Loc dữ liệu theo value
    double setFilter(double RecID, char* Value);
    double getPageCount(double);
    double getPageSize(double RecID);
    double setPageSize(double RecID, double Value);
    double getRecordCount(double RecID);
    char* getSort(double RecID);
    // Sắp xếp dữ liệu
    double setSort(double RecID, char* Value);
    double getRecordsetState(double RecID);
    // Các method xử lý dữ liệu
    double addNew(double RecID);
    double update(double RecID);
    double cancel(double RecID);
    double cancelUpdate(double RecID);
    double deleteRecord(double RecID);
    // Tìm mẩu tin theo đều kiện Criteria, bỏ qua số mẩu tin Skip, hướng tìm là Dỉection, tại vị trí bắt đầu tìm Start
    double find(double RecID, char* Criteria, double Skip, double Dỉection, double Start);
    // Truy vấn lại cơ sở dữ liệu
    double requery(double RecID);

    Đây là link down ví dụ(GM6) và dll
    http://www.xitin8x.com/gamevui/adoDLL.zip
     
  2. anhchanghaudau

    anhchanghaudau Youtube Master Race

    Tham gia ngày:
    25/2/06
    Bài viết:
    51
     
  3. anhchanghaudau

    anhchanghaudau Youtube Master Race

    Tham gia ngày:
    25/2/06
    Bài viết:
    51
    Úi chà phiền quá, lại lộn nữa rồi, xin lỗi admin, cái link là đoạn text đó luôn, các bạn copy nhưng đừng nhấn vô nhé(đúng là nhà quê ra tỉnh hổng biết sử dụng diễn đàn)
     
  4. bullno1

    bullno1 Mr & Ms Pac-Man

    Tham gia ngày:
    22/4/06
    Bài viết:
    221
    Dùng gm database có phải là đơn giản hơn không?Trong gamemaker.nl có đấy.Cái gm database chỉ có một nhược điểm là cái chương trình quản lý của nó chán quá,string dài là bị che bớt.Nhưng có thể viết lại của riêng mình.
     
  5. anhchanghaudau

    anhchanghaudau Youtube Master Race

    Tham gia ngày:
    25/2/06
    Bài viết:
    51
    Mình có dùng qua GM database nhưng cách lưu trữ thô sơ, tốc độ tìm kiếm chậm, nên mình mới tận dụng công nghệ ADO của Windows, ngoài kết nối được với Access thì nó còn kết nối SQL, Excell... và thêm xóa sửa dễ dàng khi chạy chương trình, chứ không phải lúc thiết kế như GM database
     

Chia sẻ trang này