class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

JDBC

загрузка драйвера
соединение с БД
выполнение запросов
параметризованные запросы

ODBC

ODBC
ODBC для wxWidgets
JDBC - ODBC мост

ADO

ADO

VCL

VCL компоненты

PHP

PHP

DBI (perl)

dbi пример

Hibernate

Hibernate

Справка по ADO

ADO

Развивая технологию ActiveX, фирма Microsoft предоставила новый объектно-ориентированный интерфейс для доступа к базам данных - ADO. Как следствие ADO тесно интегрирован с продуктами от Microsoft и не может быть не доступен на других платформах. Объектная модель ADO состоит из небольшого числа объектов, включая их коллекции:

Ниже приведен пример использования этих объектов на Visual C++.


#include "stdafx.h"
#include <iostream>
#include <string>

// импортируем описание com объектов
// #import "msado15.dll" rename("EOF", "ADOEOF")

// если msado15.dll не находится 
// вышеприведенной строкой, 
// то указываем путь явно
#import "C:\\Program files\\Common Files\\System\\Ado\\msado15.dll"\\
rename("EOF", "ADOEOF")

using namespace std;
using namespace ADODB;

int _tmain(int argc, _TCHAR* argv[]) {
    _ConnectionPtr conn;
    _RecordsetPtr recordset;
    _CommandPtr cmd;
    HRESULT hr;

    CoInitialize(NULL);

    try {
        // устанавливаем соединение
        hr = conn.CreateInstance(__uuidof(Connection));
        if (FAILED(hr))
        throw _com_error(hr);
        conn->Open(
            L"Provider=PostgreSQL.1;Password=root1;User ID=root;\\
              Data Source=localhost;Location=postgres;",
            L"", L"", adConnectUnspecified);

        hr = recordset.CreateInstance(__uuidof(Recordset));
        if (FAILED(hr))
        throw _com_error(hr);

        //инициализируем объект SQL команд
        hr = cmd.CreateInstance(__uuidof(Command));
        if (FAILED(hr))
        throw _com_error(hr);
        cmd->ActiveConnection=conn;

        // создаем таблицу
        cmd->CommandText=L"CREATE TABLE tblname\\
          (\\
          id integer NOT NULL,\\
          str varchar(45),\\
          CONSTRAINT pk_tblname122 PRIMARY KEY (id)\\
           )";
        cmd->Execute(NULL,NULL,adCmdText);

        // вставляем запись
        cmd->CommandText=L"INSERT INTO tblname\\
                   VALUES (1,\\'Hello World\\')";
        cmd->Execute(NULL,NULL,adCmdText);

        // выборка данных  
        recordset->Open(L"SELECT * from tblname",
            conn.GetInterfacePtr(),
            adOpenForwardOnly, adLockReadOnly,
            adCmdText);

        // вывод записей
        _variant_t var;
        
        cout<<"\\n------------------------"<<endl;
        while(!recordset->ADOEOF) {
            var = recordset->Fields->GetItem(L"str")
            ->GetValue();
            cout << "row: "<< 
           static_cast<char *>(_bstr_t(var.bstrVal))
            << endl;
            recordset->MoveNext();
          };

        recordset->Close();
        cout<<"\\n------------------------"<<endl;

        // удаление таблицы
        cmd->CommandText=L"DROP TABLE tblname";
        cmd->Execute(NULL,NULL,adCmdText);
      }
    catch(_com_error &e) {

        cerr << endl << cerr.hex << (long)hr << 
        ":"<< cerr.dec << 
        static_cast<char *>(e.Description());
      }
    catch(...){
        cerr << "unhandled exception";
      }

    // освобождаем ресурсы
    if (recordset && recordset->State==adStateOpen)
      recordset->Close();

    if (conn && conn->State==adStateOpen)
      conn->Close();

    cout<<"\\nclose com objects"<<endl;

    CoUninitialize();
  }

Рейтинг@Mail.ru