Платформы корпоративных информационных систем

         

Объявление класса Row в row.h



Пример 13-11. Объявление класса Row в row.h

#ifndef l_row_h
#define l_row_h

#include <sys/types.h>

#if defined(HAS_MSQL)
#include <msql.h>

#define T_RESULT m_result
#define T_ROW m_row
#elif defined(HAS_MYSQL)
#include <mysql.h>
#define T_RESULT MYSQL_RES
#define T_ROW MYSQL_ROW
#endif



class Row { private:

T_RESULT 'result;

T_ROW fields;

public:

Row(T_RESULT *, T_ROW);
~Row();

char *GetField(int);
int GetFieldCount();
int IsClosed();
void Close();

};

#endif // l_row_h

В обоих API есть макросы для типов данных, представляющие результирующий набор и строку внутри него. В обоих API строка является массивом строк, содержащих данные этой строки, и ничем более. Доступ к этим данным осуществляется по индексу массива в порядке, определяемом запросом. Например, для запроса SELECT user_id , password FROM users индекс 0 указывает на имя пользователя и индекс 1 -на пароль. Наш C++ API делает это индексирование несколько более дружественным для пользователя. GetField(1) возвратит первое поле, или f ields[0]. Пример 13-12 содержит полный листинг исходного кода для класса Row.



Содержание раздела