Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятные ошибки 
:(
    Опции темы
chaos
Дата 19.6.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


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

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



Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    ImageList1->Clear();
    ComboBox1->Clear();

    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Text = "SELECT Name, Obj FROM Icons";
    ADOQuery1->Open();
    ADOQuery1->First();

    TIcon *icon = new TIcon;

    while(!ADOQuery1->Eof)
    {

        ComboBox1->Items->Add(ADOQuery1->FieldByName("Name")->AsString);

        icon->LoadFromStream(ADOQuery1->CreateBlobStream(ADOQuery1->FieldByName("Obj"), bmRead));
        ImageList1->AddIcon(icon);

        ADOQuery1->Next();
    }
    delete icon;

    ADOQuery1->Close();
}

ADOQuery1->Close(); на этом месте постоянно вылетает ошибка, хотя если перед этой строкой поставить ADOQuery1->First(); то вроде все работает


А когда Выполняю следующий код вываливается ошибка на строке
Form1->ADOQuery1->ExecSQL();
самое что интересное если из программы убрать обработчик FormCreate то код ниже успешно отрабатывается
Код

void __fastcall TOKBottomDlg::OKBtnClick(TObject *Sender)
{
    try
    {
        __try
        {
            TMemoryStream *IcoStream = new(TMemoryStream);
            Image1->Picture->Icon->SaveToStream(IcoStream);

            Form1->ADOQuery1->SQL->Clear();
            Form1->ADOQuery1->SQL->Text = "INSERT INTO icons (Name, Obj) VALUES(:nme, :ico)";

            Form1->ADOQuery1->Parameters->ParamByName("nme")->Value = Edit2->Text;
            Form1->ADOQuery1->Parameters->ParamByName("ico")->LoadFromStream(IcoStream, ftGraphic);
            Form1->ADOQuery1->ExecSQL();
        }
        __finally
        {
            if (Form1->ADOQuery1->Active)
                Form1->ADOQuery1->Close();

            delete IcoStream;
        }
    }
    catch (Exception &E)
    {
        ShowMessage(E.Message);
    }
}


почему такое происходит???

Это сообщение отредактировал(а) chaos - 22.6.2005, 09:29
PM WWW   Вверх
chaos
Дата 19.6.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


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

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



вот подумал может нельзя с одни и темже ADOQuery делать Open и ExecSQL?
Сделал так где запросы должны возвращать записи использую ADOQuery, где не должно ADOCommand
PM WWW   Вверх
_hunter
Дата 21.6.2005, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



дык само-собой нельзя.
Цитата
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

для SELECT' a -- юзай Open()


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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