Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Oracle8i через ADO  (Прочитано 9708 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bigzone
Гость
« : 20-07-2005 08:07 » 

Здравствуйте Господа.
Подскажите пожалуйста как приконектиться к БД Oracle8i Enterprise Edition (8.1.7.0.0) из MS Visual C++ 6.0.
Используя ADO (нужно с помощью ADO).

Большое спасибо.
Записан
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #1 : 20-07-2005 08:48 » 

Bigzone,

если ты работаешь в мфц, то тебе должно быть все равно, какую базу данных ты коннектишь - там есть на панели инструментов элемент Microsoft ADO Data Control, version 6.0 (OLEDB) (если нет - идешь в project ->  add to project -> components and controls -> registered activex controls и там его находишь).
Там выставляешь все нужные тебе параметры и далее используешь этот адо - элемент как базу данных. Если тебя это интересует, могу скинуть тестовый примерчик (делала когда-то для оракловского проекта).
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Bigzone
Гость
« Ответ #2 : 20-07-2005 14:36 » 

Malaja да пожалуйста если можно пример. bigzone@mail.ru

Записан
Bigzone
Гость
« Ответ #3 : 20-07-2005 14:37 » 

Здравствуйте Господа.
Не получаеться подключиться в БД Oracle8i Enterprise Edition (8.1.7.0.0), через ADO
Использую ActiveX (Microsoft ADO Data Control, version 6.0 (OLEDB).
 При исполнении данного кода возникает ошибка следующего характера пишет что данный сервер БД не найден.
Ошибка должна быть здесь с вероятностью 99%.
//===========================================
   ca.SetConnectionString("PROVIDER=Oracle ODBC Driver;dsn=auto;uid=system;pwd=manager;database=auto;");
//===========================================
Может поясните какие значения суда писать
PROVIDER=?
dsn=?
uid=”Это я понимаю имя”
pwd=”Пароль”
database=?

Текст программы:
Код:
//---------------------------------------
ca.Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 111);
ca.ShowWindow(SW_HIDE);
ca.
ca.SetConnectionString("PROVIDER=Oracle ODBC Driver;dsn=auto;uid=system;pwd=manager;database=auto;");
ca.SetRecordSource("SELECT * FROM mytab1");
ca.Refresh();
cr=ca.GetRecordset();
long i=cr.GetRecordCount();
char buffer[255];
itoa(i,(char*)&buffer,10);
AfxMessageBox(buffer);
//---------------------------------------
Большое спасибо.
Записан
Bigzone
Гость
« Ответ #4 : 21-07-2005 05:51 » 

Здравствуйте Господа.
Значит уже второй день сижу парюсь с Oracle8i Enterprise Edition (8.1.7.0.0).
Ну вижу этого зверя первый рас. Удалось достичь следующих результатов:
Подконектился к серваку Использую ActiveX (Microsoft ADO Data Control, version 6.0 (OLEDB).
Код:
/---------------------

ca.Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 111);
ca.ShowWindow(SW_HIDE);
ca.SetConnectionString("DRIVER=Oracle ODBC Driver;dsn=proba;uid=andrey;pwd=qwe;database=proba;");


/---------------------
Делаю SQL запрос
Код:
/---------------------

ca.SetRecordSource("SELECT * FROM mytab1");
ca.Refresh();
/---------------------
И все нормально НО.
Научите меня как можно та результат запроса прочитать.

Вроде должно быть так :
Код:
/---------------------
cr.GetFields().GetItem(long(0));
/---------------------
Думаю должен был бы получить значение первой ячейки.

Но компилятор с этой ( cr.GetFields().GetItem(long(0)); )  строчкой уже не хочет компилировать и пишет что в глаза первый раз видит класс CFields.

Подскажите как считывать полученные значения.

Большое спасибо.
Записан
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #5 : 21-07-2005 08:34 » 

Bigzone,

посмотри пример из mail - a
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Bigzone
Гость
« Ответ #6 : 23-07-2005 11:58 » 

Здравствуйте Дамы и Господа.
У меня уже голова пухнет от этих думок об Oracle.
     Пробовал для соединения и работы с БД Oracle использовать ActiveX (Microsoft ADO Data Control, version 6.0 (OLEDB). С соединением все хорошо но вот чтобы нормально работать с БД не получается.
Немого считать результат запроса к БД (ca.SetRecordSource("SELECT * FROM mytab1"); )
И ни где нормально по работе с этой компонентой ни написана в MSDN   нет и в нете не нашел.
А как узнать кол-во полей, имена, тип и размер вообще не знаю как добыть.

Нашел класс CRecordset все хорошо.
Нашел как узнать кол-во полей, имена, тип и размер.
Но как программно подсоединиться к БД.
Цитата
/--------------------------
CRecordset rc;
rs.Open(CRecordset::forwardOnly,"SELECT * FROM  mytab1",CRecordset::none);
/--------------------------


После этой строчки выскакивает диалог подключения к БД.


ВОПРОС:

Как при работе с CRecordset подключиться к БД без диалоговых окон. Тоесть сразу прописать к какой БД, под каким именем и паролем. Что то вроде (("DRIVER=Oracle ODBC Driver;dsn=proba;uid=andrey;pwd=qwe;database=proba;")Ага

И как выполнять SQL запросы к БД.
Где то читал что нужно использовать класс CDatabase если его то как связать его с CRecordset.

Буду очень признателен за любую помошь.
Записан
Bigzone
Гость
« Ответ #7 : 23-07-2005 18:44 » 

Подскажите как в Oracle8i начать, завершить и откатить транзакцию.

И можно ли переименовывать таблицы если да то как.

Буду очень признателен за любую помощь.
Записан
Bigzone
Гость
« Ответ #8 : 24-07-2005 17:54 » 

Для взаимодействия с БД использую Cdatabase и CRecordset.
Как можно узнать все параметры поля такие как:
 - тип
 - существует ли индекс на данное поле
 - имя этого индекса и его параметры.

Или параметры таблицы как узнать.

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines