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

anhchanghaudau

Youtube Master Race
Tham gia ngày
25/2/06
Bài viết
51
Reaction score
0
Đâ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 ([email protected]) 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
 
anhchanghaudau nói:
Đâ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 QUOTE]

Sorry mọi người, đúng ra là từ 0 - 9, nếu không có Recordset nào trống thì trả về -1, bạn phải đóng Recordset lại nếu không dùng để dành cho lần mở kế tiếp. Ngoài ra còn thiếu 1 số hàm:

// kết nối dựa vào ConnectString = "Provider=Microsoft.JET.OLEDB.4.0; ...."
double connectDatabase(char* ConnectString);//
double disconnectDatabase();//

double beginTransition();//
double commitTransition();//
double rollbackTransition();//
// thực thi câu truy vấn hoặc INSERT, UPDATE, SELECT nhưng không trả về Recordset
double executeQuery(char* Query);//

double getState();//
// Mở 1 Recordset và trả về ID của Recordset đó, VD: SELECT * FROM tableX
double openTable(char* Query);//
double closeTable(double RecID);//
 
Ú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)
 
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.
 
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
 
Back
Top