Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pConnection->Execute, передаю 1 параметр работает! 2 пар. -нет 
:(
    Опции темы
Roberto
Дата 30.1.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 21.6.2007

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



Столкнулся со следующей проблемой  использую адо для добавления в БД :
        
                  pRstEmployees->AddNew();
        pRstEmployees->Fields->Item["name"]->Value =  _bstr_t(getdata(fritestring,1));
                  ........................
        pRstEmployees->Fields->Item["Speed"]->Value = _bstr_t(getdata(fritestring,10));
        pRstEmployees->Update();

для освобождения памяти использую
//    if (picRs) picRs->Release();
//    pRstEmployees->Close();
конекшен не закрываю (хотя пробовал закрывать)
Операция приводит к утечке памяти примерно от 16 до 40 кб на 1 инсерт!

решил добавлять без 
_RecordsetPtr pRstEmployees = NULL;
   IADORecordBinding *picRs = NULL;  //Interface Pointer declared.(VC++ Extensions)   
через     _ConnectionPtr pConnection  = NULL;
pConnection->Execute("insert into dbo.Temp_kpk (tp_id)values ('"+_bstr_t(getdata(fritestring,3))+"')",NULL, adCmdText);
строка рабоатет отличо но нельзя передавать больше 1 параметра (указанным выше способом) сразу ошибка!
1) как передавать параметры по проще!?
2) что делать с RAM???

Это сообщение отредактировал(а) Roberto - 30.1.2008, 10:43
PM MAIL   Вверх
T0ohtik
Дата 14.3.2008, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 9.2.2008

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



Возможность добавлять несколько записей одной командой INSERT появилась только в SQL Server 2008.
А вообще то для работы с БД я написал простенький класс:
Код

CQuerytoDataBase::CQuerytoDataBase()
{
    pConn = NULL;
    pCmd = NULL;
    pRs = NULL; 
}

CQuerytoDataBase::~CQuerytoDataBase(void)
{

}

void CQuerytoDataBase::Initialize(CString strConnection,CString strUserId,CString strPassword)
{
    m_strConnection = strConnection;
    m_strUserId = strUserId;
    m_strPassword = strPassword;
    pConn.CreateInstance(__uuidof(Connection));
    pCmd.CreateInstance(__uuidof(Command));
    pRs.CreateInstance(__uuidof(Recordset));
    pConn->Open((_bstr_t)m_strConnection,(_bstr_t)m_strUserId,(_bstr_t)m_strPassword,adOpenUnspecified);
    pCmd->ActiveConnection = pConn;
    pRs->putref_Source(pCmd);
    pRs->CursorType = adOpenStatic;
    pRs->CursorLocation = adUseClient;
    pRs->putref_Source(pCmd);
}


_RecordsetPtr CQuerytoDataBase::ExecuteQuery(CString strQuery)
{
    if(!strQuery)
        return NULL;
    else
    {
        pCmd->CommandText = (_bstr_t)strQuery;
        if(ERROR_SUCCESS==pRs->Open((IDispatch *)pCmd,vtMissing,adOpenStatic,adLockBatchOptimistic, adCmdUnknown))
        {

            return pRs;
        }
        else
        {
            return NULL;
        }
    }
}

кстати можете попинать кодsmile Выслушаюsmile
Да и пользуйся тегами код.

Это сообщение отредактировал(а) T0ohtik - 14.3.2008, 23:14
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




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


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

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