Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQLite, не понятный затык! :( 
V
    Опции темы
vikaz
Дата 11.1.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем добрый! Есть функция:
Код

void __fastcall TPersonal_Form::Infill_MedicalHistory (bool flag)
{                                                                // flag = true  - ранее созданные пункты истории
                                  // flag = false - история для данного пользователя
 HistoryMed_ComboBox->Clear();

 if (flag) UniQuery_Employee->SQL->Text = "select DISTINCT History_Name from MedicalInspection where History_Name not null order by History_Name";
 else {
           UniQuery_Employee->SQL->Text = "select * from MedicalInspection where Employee_Ind=:Employee_Ind and History_Name not null";
       UniQuery_Employee->ParamByName("Employee_Ind")->AsInteger = Employee_Ind;
      }

 UniQuery_Employee->Open();
 UniQuery_Employee->First();

 while (!UniQuery_Employee->Eof)
       {
        if (flag) HistoryMed_ComboBox->Items->AddObject(UniQuery_Employee->FieldByName("History_Name")->AsString, 0);
             else  HistoryMed_ComboBox->Items->AddObject(UniQuery_Employee->FieldByName("History_Name")->AsString, (TObject*)(UniQuery_Employee->FieldByName("Employee_Ind")->AsInteger));
    
        UniQuery_Employee->Next();
       }
 UniQuery_Employee->Close();
}


Затык в 18 строке (else  HistoryMed_ComboBox->Items->.......)
в этом месте ошибка как в прикрепленном изображении. 
Код проверил 10 раз, проверил его в SQLite Expert, там все отрабатывает нормально.
Прикол начинает тогда, когда заменяем строку else  HistoryMed_ComboBox->Items->....... ,допустим на:
Код

 ShowMessage (UniQuery_Employee->FieldByName("History_Name")->AsString); 

Данный код отрабатывается нормально и возвращает мне нужные значения. Я пошел дальше и написал сл. код:
Код

if (flag) HistoryMed_ComboBox->Items->AddObject(UniQuery_Employee->FieldByName("History_Name")->AsString, 0);
             else { 
                                  ShowMessage (UniQuery_Employee->FieldByName("History_Name")->AsString);
                                   HistoryMed_ComboBox->Items->AddObject("qwe", 0);
                                 }

Вылетает та же самая ошибка, как на изображении. Что за чушь, не могу понять! :(

Добавлено через 2 минуты и 43 секунды
Еще, если flag=true, то код так же отрабатывается нормально, заполняя нужный ComboBox нужными значениями!  smile 

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  error.JPG 16,81 Kb


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
vikaz
Дата 11.1.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Еще обнаружилось, если History_Name будет возвращать пустое значение для Employee_Ind (т.е. записей удовлет. условию не будет), ошибка так же не появляется! :(


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 11.1.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



vikaz, попробуй так:
Код

//...
else 
{
 String str = UniQuery_Employee->FieldByName("History_Name")->AsString;
 HistoryMed_ComboBox->Items->AddObject(str, (TObject*)str.ToIntDef(-1));
}
//...

PM MAIL   Вверх
vikaz
Дата 11.1.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо тебе камрад, за попытку помочь. Но я нашел в чем было дело! Моя ошибка......  smile 


--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
borisbn
Дата 11.2.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



vikaz, ну так колись  smile 
из-за "select *" ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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