Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (20)


Access 2000 через ADO

Поиск:
Три шага для подключения БД Access2000 к своей программе:

1) Прежде всего, качаем файл, присоединённый к данной теме. В нём находятся 2 исходника, в которых лежат все необходимые классы и структуры. Распаковав архив, заходим в Ado2.h, и изменяем пути к длл-кам:
Цитата
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF", "EndOfFile")
#import "C:\Program Files\Common Files\System\ado\MSJRO.DLL" no_namespace

Если версия Windows - 2000 или XP, то обе длл-ки лежат в System32.

2) Подключаем файл Ado2.h к исходным кодам своей программы. Лучше всего это сделать в файле stdafx.h

3) Для того, чтобы база данных работала в любой Windows, где даже нету установленного Office, достаточно просто включить в дистрибутив своей программы два файла: msado15.dll и msjet40.dll, и в инсталляционном скрипте установить опцию авторегистрации (Register DLL server) для обеих длл-ок. При упаковке каким-нибудь InstallShield-ом или WISE, эти два файла добавят всего лишь 700-800 Кб.

Простой пример работы с ADO:
Цитата
#include  "Ado2.h"

// ...

void  SomeFunction()
{
    // коннектимся к нашей базе данных "my_database.mdb":
    CADODatabase  db;
    CString  csPath = "c:\my_database.mdb";  // измените этот путь
    db.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + csPath);
   
    // вызываем хранимую процедуру (запрос) "SetSomeData":
    CADOCommand qd(&db, "SetSomeData");
    // передаём параметр типа integer
    CADOParameter theparam(ADODB::adInteger);
    theparam.SetName("param_some_data");
    theparam.SetValue(123);
    qd.AddParameter(&theparam);
    qd.Execute();

    // вызываем хранимую процедуру "GetSomeData":
    CADOCommand qd(&db, "GetSomeData");
    CADORecordset rs(&db);
    rs.Execute(&qd);
    long cntRes = rs.GetRecordCount();

    // получаем поле "some_data" из набора записей результата запроса
    if(cntRes)
    {
          rs.MoveLast();
          rs.MoveFirst();
          for(int i = 0; i < cntRes; i++)
          {
              _variant_t val;
              rs.GetFieldValue("some_data", val);

              // получаем значение поля в виде длинного целого
              long lVal = long(val);

              rs.MoveNext();
          }
    }   
}
Автор: mr.DUDA
Сайт: http://






Просмотров: 3457

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную