|
| ||||||||||||
| ||||||||||||
|
2004 г
MySQL: Руководство разработчика. Версия 1.0. 20 апреля 2004 г.Алексей Паутов,Все о MySQL на русском: http://www.botik.ru/~rldp/mysql.htm, ftp://ftp.botik.ru/rented/rldp/www/pub Russian LDP: http://www.botik.ru/~rldp, ftp://ftp.botik.ru/rented/rldp 3.10 MyDAO: библиотека-оболочка для C++Версия v0.1 (19-Feb-2000). Автор: Satish (spitfire@pn3.vsnl.net.in). Лицензия: Feel free to use/copy/modify/add bugs/find bugs, but keep the author informed. ВведениеЭто C++ библиотека для сервера MySQL. Разработчик данного пакета искал библиотеку C++, которая может создавать и работать с Data Access Objects. Он натолкнулся на программное обеспечение, написанное Roland Hanel (MySQL C++) и Ed Carp (MyC). Но MyC написан на чистом C и не может создавать объект в истинном смысле. Также это не может создавать и работать с несколькими наборами результатов. На основе этих пакетов была написан пакет MyDAO ver 0.1. Руководство программистаdbconnect class: Один объект подключения должен быть создан. Это ответственно за соединение с сервером MySQL и открытие базы данных. Свойства:
Методы:
Пример: dbconnect MyConnect;
char host[]="localhost";
char port[]="3306";
char name[]="satish";
char pwd[]="";
char db[]="orders";
MyConnect.Connect(host, port, name, pwd);
if (MyConnect.Connected) cout << "Connected" << endl;
else
{
cout << "Connection failed" << endl;
return;
}
if (!MyConnect.OpenDB(db)) {
cout << "Can not open selected database" << endl;
return;
}
else
{
cout << "Opened datbase: " << db << endl;
// open recorset(s)...
// Manipulate data...
}
MyConnect.Disconnect();
recordset class: Любое количество наборов результатов может быть создано из этого класса. Он имеет много свойств для простого манипулирования данными. Свойства:
Методы:
Пример 1: // Продолжение примера из dbconnect.
// Откроем таблицу заказчиков (customers) и распечатаем
// все записи из нее.
recordset MySet;
char sql[]="SELECT * FROM customers";
MySet.OpenRecordset(MyConnect.DBase, sql);
if (MySet.EOR && MySet.BOR){
cout << "No records found" << endl;
return;
}
else
{
// Show number of records
cout << "No. of records: " << MySet.RecordCount << endl;
// Show all records
while (!MySet.EOR)
{
cout << MySet.GetField("or_id") << "\t";
cout << MySet.GetField("customers") << "\t";
cout << MySet.GetField("city") << endl;
MySet.MoveNext();
}
}
Пример 2: // Добавление новой строки в таблицу заказчиков.
MySet.AddNew();
MySet.SetField("cs_id", "7");
MySet.SetField("name", "Satish");
MySet.SetField("city", "Pune");
MySet.Update(""); // where не используется!
MySet.Refresh(); // Сделаем изменения видимыми.
Пример 3: // Изменение имени заказчика.
MySet.Edit();
MySet.SetField("cs_id", "7");
MySet.SetField("name", "Suresh");
MySet.SetField("city", "Pune");
MySet.Update("or_id=7"); // where здесь необходимо использовать.
MySet.Refresh(); // Сделаем изменения видимыми.
Пример 4: // Удаление записи.
MySet.Delete("name='Suresh'");
MySet.Refresh(); // Сделаем изменения видимыми.
Пример 5: // Закроем набор результатов после употребления. Это ОБЯЗАТЕЛЬНО! MySet.CloseRecordset(); Что еще надо сделать:
|
|
CITForum © 1997–2025