Oracle8i через ADO
Значит уже второй день сижу парюсь с 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.
Подскажите как считывать полученные значения.
Большое спасибо.
У меня уже голова пухнет от этих думок об 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.
Буду очень признателен за любую помошь.
И можно ли переименовывать таблицы если да то как.
Буду очень признателен за любую помощь.
Подскажите как в Oracle8i начать, завершить и откатить транзакцию.
Как везде - commit и rollaback. Может у ADы даже функции соответствующие есть.
Никак, только в 9i.
И еще вопрос если моно.
Для взаимодействия с БД использую Cdatabase и CRecordset.
Как можно узнать все параметры поля такие как:
- тип
- существует ли индекс на данное поле
- имя этого индекса и его параметры.
Или параметры таблицы как узнать.
Спасибо.
Как можно узнать все параметры поля такие как:
- тип
- существует ли индекс на данное поле
- имя этого индекса и его параметры.
Запросы к представлениям USER_TABLES, USER_TAB_COLUMNS, USER_INDEXES и т. д. спасут отца русской демократии. По идее, сама ADа должна получать как свойства курсора, например, типы полей (но не индексы).