• Thứ Hai, 02/02/2004 10:49 (GMT+7)

    Câu hỏi :
    1. Khi đóng gói chương trình thì CSDL có thể copy lại được không? 2. Xin hướng dẫn cách tạo file CSDL ngay ở trên chương trình ứng dụng mà không cần thông qua cách tạo file như của Access, SQL Server ...

    Trả lời :

    1. Mỗi phần mềm thường bao gồm nhiều file khác nhau: file khả thi *.exe, file thư viện liên kết động *.dll, file chứa các linh kiện phần mềm được dùng trong ứng dụng *.ocx, file chứa các tài nguyên mà ứng dụng xử lý như âm thanh, ảnh, trợ giúp *.hlp (hay *.chm), file chứa database mà phần mềm xử lý... Tại thời điểm đóng gói phần mềm, người đóng gói phải tạo ra các file cấu thành ứng dụng với nội dung thích hợp nào đó (kể cả file database). Sau khi đóng gói, kết quả sẽ được lưu trên 1 môi trường phân phối nào đó (hiện nay dùng CDROM là chủ yếu), ta nói đây là bản gốc của ứng dụng. Người dùng ứng dụng sẽ mua (hay copy) CD gốc của ứng dụng và khi cần, họ cài đặt ứng dụng vào máy thông qua trình setup của ứng dụng đó. Trình setup sẽ copy các file từ bản gốc vào thư mục qui định của máy để từ đây người dùng có thể dùng ứng dụng. Trong quá trình sử dụng, người dùng có thể tham khảo hay hiệu chỉnh các file tài nguyên của ứng dụng (thông qua các chức năng của ứng dụng). Việc hiệu chỉnh này chỉ ảnh hưởng đến người dùng đó chứ không thay đổi bản gốc của ứng dụng trên CDROM. Trong quá trình sử dụng ứng dụng, người dùng có thể có những yêu cầu sau:

    o Xóa ứng dụng với trạng thái hiện hành và cài mới lại ứng dụng với trạng thái gốc từ đĩa CD. Yêu cầu này được giải quyết rất đơn giản: uninstall ứng dụng rồi cài lại ứng dụng từ đầu. Sau khi ứng dụng được cài đặt, nó sẽ làm việc từ trạng thái gốc của ứng dụng đóng gói. Khi đó các file database của ứng dụng sẽ được reset với trạng thái gốc.

    o Giữ một số file tài nguyên của ứng dụng với trạng thái hiện hành, chỉ muốn cài đặt lại ứng dụng (vì bị hỏng do virus phá chẳng hạn). Yêu cầu này được giải quyết bằng cách sao lưu các file tài nguyên của ứng dụng vào thư mục nào đó, uninstall ứng dụng (nếu không thể uninstall thì xóa thủ công thư mục chứa các file của ứng dụng trên đĩa cứng), cài mới lại ứng dụng từ bản gốc, copy các file tài nguyên lưu giữ về vị trí cũ của nó. Tóm lại, về nguyên tắc, bạn có thể copy đè các file database hiện tại của ứng dụng từ 1 nguồn nào đó.

    2. Về nguyên tắc, bất kỳ chức năng nào được thực hiện trực tiếp bởi người dùng đều có thể thực hiện tự động bằng các lệnh của phần mềm. Thí dụ, việc tạo cơ sở dữ liệu và khởi động các record của cơ sở dữ liệu có thể làm thủ công thông qua giao diện sử dụng của 1 phần mềm nào đó hay thực hiện tự động thông qua các lệnh của phần mềm. Có nhiều giao tiếp lập trình truy xuất database khác nhau, trong đó giao tiếp ADO của Microsoft là dễ dùng và an toàn nhất. Thí dụ sau đây là đoạn code VC++ dùng giao tiếp ADO cho phép tạo 1 database mới trên SQL Server rồi tạo 1 bảng dữ liệu trên database vừa tạo:

    char constring[256];

    ADODB::_ConnectionPtr Con;

    ::CoInitialize (NULL);

    // tạo đối tượng Connection để giao tiếp với server SQL

    Con.CreateInstance(__uuidof(ADODB::Connection));

    // Xây dựng chuỗi qui định thông số nối kết đến server SQL

    sprintf(constring,'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=%s',m_servername),

    // thực hiện lệnh nối kết đến server SQL

    Con->Open( _bstr_t(constring),_bstr_t(''),_bstr_t(''),-1);

    // xây dựng lệnh SQL để tạo database với tên là MyData

    sprintf(buf,'CREATE DATABASE MyData');

    // Thực hiện lệnh tạo database

    Con->Execute(buf,NULL,ADODB::adCmdText);

    // xây dựng lệnh SQL để dùng database vừa tạo

    sprintf(buf,'USE MyData');

    // Thực hiện lệnh Use database

    Con->Execute(buf,NULL,ADODB::adCmdText);

    // xây dựng lệnh SQL để tạo bảng MyTable trên database vừa tạo

    sprintf(buf,'CREATE TABLE MyTable (Hoten char(10), Diachi char(50),)');

    // Thực hiện lệnh tạo bảng MyTable

    Con->Execute(buf,NULL,ADODB::adCmdText);

    ...

     

    Chuyên mục: Lập trình