Форум: Форум C++Разное
Новые темы: 00
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужна помощь (с++ + access)
 
 автор: P@Sol   (04.06.2007 в 11:31)   письмо автору
 
 

в си++ я начинаю программировать. можно сказать, ничего не умею, поэтому мне необходима ваша помощь. поможите?
Задача1: в папке есть файл access с двумя таблицами надо прочитать его

я поставил себе VS 2005. C чего нечать работу? (чтобы вы мне подсказали, вам надо сказать окончательную задачу?)

p.s. плюс приму в подарок ссылки на литературу, которая мне поможет начать и закончить разработку (работа с папками, бд access, вывод таблиц и диаграмм)

  Ответить  
 
 автор: alex19921992   (05.06.2007 в 07:49)   письмо автору
 
   для: P@Sol   (04.06.2007 в 11:31)
 

Начать работу стоит с того, что надо поставить себе VС++ 6.0 ибо на 2005-м ничего скомпилить нереально...
А вот мсдн лучше взять самый последний (у меня стоит январь 2006-го)

  Ответить  
 
 автор: oleg_alexeev   (05.06.2007 в 10:14)   письмо автору
 
   для: alex19921992   (05.06.2007 в 07:49)
 

На vs 2005 работаю больше года, всё компилируется вполне реально :)

  Ответить  
 
 автор: oleg_alexeev   (05.06.2007 в 10:17)   письмо автору
 
   для: P@Sol   (04.06.2007 в 11:31)
 

Пример тестового консольного приложения для работы с mdb-файлом:


#include "stdafx.h"
#include <atlstr.h>
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF""adoEOF")


void Test()
{
    HRESULT hr;

    // создать объект connection (соединение)
    _ConnectionPtr conn;
    hr = conn.CreateInstance(__uuidof(Connection));
    if (FAILED(hr))
    {
        printf("Creation of connection object failed.");
        return;
    }

    // открыть соединение (подключиться к базе данных)
    _bstr_t connstr("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\db1.mdb;Mode=ReadWrite");
    _bstr_t user("");
    _bstr_t password("");
    hr = conn->raw_Open(connstr, user, password, adConnectUnspecified);
    if (FAILED(hr))
    {
        printf("Failed to open database.");
        return;
    }

    // выполнить SQL-запрос [выборка записей, у которых поле ID меньше либо равно 2]
    _CommandPtr cmd;
    hr = cmd.CreateInstance(__uuidof(Command));
    if (FAILED(hr))
    {
        printf("Creation of command object failed.");
        return;
    }
    cmd->ActiveConnection = conn;
    cmd->CommandText = "SELECT * FROM table1 WHERE id <= ?;";
    cmd->Parameters->Append(cmd->CreateParameter("", adInteger, adParamInput, sizeof(int), 2));
    _RecordsetPtr rst = cmd->Execute(NULL, NULL, adCmdText);
    while (!rst->adoEOF)
    {
        // вывести на экран значение полей ID и NAME и перейти к следующей записи
        _variant_t id   = rst->GetCollect("id");
        _variant_t name = rst->GetCollect("name");
        wprintf(L"Id: %d Name: %s\n", (long)id, (wchar_t *)name.bstrVal);
        rst->MoveNext();
    }
}


int _tmain(int argc, _TCHAR* argv[])
{
    // инициализировать COM
    CoInitialize(NULL);

    try
    {
        Test();
    }
    catch (_com_error &e)
    {
        CString desc;
        desc.Format(TEXT("%s"), (const char*)e.Description());

        CString err;
        if (desc==TEXT("(null)")) err.Format(TEXT("Код ошибки: 0x%x"), (int)e.Error());
        else                      err.Format(TEXT("Код ошибки: 0x%x    Описание: %s"), (int)e.Error(), desc.GetString());

        ::MessageBox(::GetActiveWindow(), err.GetString(), TEXT("Ошибка"), MB_OK|MB_ICONEXCLAMATION);
    }

    system("pause");
    return 0;
}


Как Вам нравится этот монстрик? :))

  Ответить  
 
 автор: alex19921992   (05.06.2007 в 16:02)   письмо автору
 
   для: oleg_alexeev   (05.06.2007 в 10:17)
 

у меня не компилятся все мои вирусы с перехватом системных функций и внедрения в процессы.

  Ответить  
 
 автор: oleg_alexeev   (06.06.2007 в 13:21)   письмо автору
 
   для: alex19921992   (05.06.2007 в 16:02)
 

Уверен, что немного (или много) повозившись, можно их скомпилировать. Ведь компилятор всегда говорит какая конструкция ему не понравилась и это можно поправить. Другое дело, что смысла в этом нет, раз они компилируются в vs6.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования