Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS Access, с помощью OLE 
:(
    Опции темы
Annihilator
Дата 13.5.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Товарищи, подскажите пожалуйста, как через OLE приконнектиться к аксессу и записать туда данные? Никак не могу сообразить и найти пример.


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
ama_kid
Дата 13.5.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Цитата(Annihilator @  13.5.2008,  19:52 Найти цитируемый пост)
Никак не могу сообразить и найти пример.
Хороший пример есть тут



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Annihilator
Дата 13.5.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(ama_kid @ 14.5.2008,  00:30)
Цитата(Annihilator @  13.5.2008,  19:52 Найти цитируемый пост)
Никак не могу сообразить и найти пример.
Хороший пример есть тут

Ё-моЁ! Зачем столько. Мне б через CreateOleObject("Access.Application") что-нить типа такого


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Rififi
Дата 13.5.2008, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



Annihilator,
тебе нужно не Access.Application, а ADODB.Connection 
PM MAIL   Вверх
Annihilator
Дата 14.5.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(Rififi @  14.5.2008,  02:12 Найти цитируемый пост)
тебе нужно не Access.Application, а ADODB.Connection

Зачем? Я хочу как с сервером OLE работать с ACCESS
Так ведь и с Word и с Excel работают.
А как с ADODB тогда будет?

Это сообщение отредактировал(а) Annihilator - 14.5.2008, 13:29


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Rififi
Дата 14.5.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



Цитата(Annihilator @  14.5.2008,  13:27 Найти цитируемый пост)
Зачем?

для того, чтобы 
Цитата
приконнектиться к аксессу и записать туда данные


Цитата(Annihilator @  14.5.2008,  13:27 Найти цитируемый пост)
А как с ADODB тогда будет?

Создаешь Connection, выполняешь INSERT INTO
PM MAIL   Вверх
Annihilator
Дата 14.5.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



подскажи пожалуйста как это будет по синтаксису
допустим есть массив из 8 строк
char s[8][10]
и в аксесе 8 столбцов и занести туда данные, в столбцы




--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Rififi
Дата 15.5.2008, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



Google -> "ADO insert sample"
PM MAIL   Вверх
Annihilator
Дата 15.5.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(Rififi @  15.5.2008,  15:41 Найти цитируемый пост)
Google -> "ADO insert sample" 

нашел пример
Код

#include <windows.h>
#include <stdio.h>
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
int main(int argc, char* argv[])
{
    /*The following variables will be initialized with necessary values and  appended to the strSQL values*/
    _bstr_t strName;
    _bstr_t strAge;
    _bstr_t strDOB;
    _bstr_t strSalary;
    _ConnectionPtr pConn = NULL;
    // Define string variables for ADO connection
    _bstr_t strCon("Provider=SQLOLEDB.1;Persist Security Info=False;User     ID=username;Password=password;Initial Catalog=databasename;Data Source=(local);Integrated Security=SSPI;");
    HRESULT hr = S_OK;

    //Initialize the COM Library
    CoInitialize(NULL);

    try
    {
        //Create the Connection pointer
        hr = pConn.CreateInstance((__uuidof(Connection)));
        if(FAILED(hr))
        {
            printf("Error instantiating Connection object\n");
            goto cleanup;
        }
        //Open the SQL Server connection
        hr = pConn->Open(strCon,"","",0);
        if(FAILED(hr))
        {
             printf("Error Opening Database object using ADO _ConnectionPtr \n");
             goto cleanup;
        }

        /*Initialize the values */
       strName = "'Codersource C++ ADO insert Sample',";
       strAge = "10,";
       strDOB = "'02/10/2004',";
       strSalary = "1010.10)";

       /* Append the values to the Insert Statement */
      _bstr_t strSQL("Insert into Table1(Name,Age,DOBirth,Salary) Values(");

       strSQL += strName + strAge + strDOB + strSalary ;

       printf("%s\n",(LPCSTR)strSQL);

       //Execute the insert statement
      pConn->Execute(strSQL,NULL,adExecuteNoRecords);

      printf("Data Added Successfully\n",(LPCSTR)strSQL);

     //Close the database
     pConn->Close();

    }
    catch(_com_error & ce)
    {
       printf("Error:%s\n",ce.ErrorInfo);
    }


cleanup:
    CoUninitialize();

    return 0;
}

на строчку 4 ругается
[C++ Error] Unit1.cpp(5): E2209 Unable to open include file ' msado15.tlh'
с чего бы??? И где этот файл тогда найти

Цитата(Rififi @  14.5.2008,  02:12 Найти цитируемый пост)
ADODB.Connection


ты имеешь ввиду CreateObject("ADODB.Connection")???
Это вроде в ASP такое работает. На С++ не видел пока ни одного примера!

Это сообщение отредактировал(а) Annihilator - 15.5.2008, 17:58


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
mrbrooks
Дата 16.5.2008, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: нет
Всего: 306



Имхо ради спортивного интереса любопытно,  а почему именно через OLE. Если для ворда и экселя это хоть как то обоснованно, то для акксеса не проще ли достучаться через ADO? 

PM MAIL   Вверх
Annihilator
Дата 16.5.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(mrbrooks @  16.5.2008,  14:09 Найти цитируемый пост)
не проще ли достучаться через ADO

Проблему я решил, подняв в рантайме ADOConnection, но неужели других путей нету.
Цитата(mrbrooks @  16.5.2008,  14:09 Найти цитируемый пост)
а почему именно через OLE

Ну это мои догадки по поводу семейства MS Office. Да и примеры я видел, только на Делфи


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
mrbrooks
Дата 16.5.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: нет
Всего: 306



Не это возможно. Я не спорю. В свое время мозг ломал. Но чес слово лучше через ADO: и быстрее, и удобнее smile 
PM MAIL   Вверх
Annihilator
Дата 16.5.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Цитата(mrbrooks @ 16.5.2008,  19:22)
Не это возможно. Я не спорю. В свое время мозг ломал. Но чес слово лучше через ADO: и быстрее, и удобнее smile

Т.е. ты тоже динамически ADOConnection делал??? Или как???


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.