dbExpress
У меня приложение соединяется с базой на сервере через dbExpress.
среда разработки C++ Builder 2009, сервер MSSQL 2008.
Существует форма регистрации. На ней вводится имя пользователя и пароль. Для входа необходима проверка подлинности пароля. Для этого из таблицы Пользователь надо взять данные, соответсвующие введенному имени пользователя и записать их в переменные.
Вот фрагмент моей программы:
_uData.userNickname - введенное имя пользователя
try {
this->SQLQuery->Close();
this->SQLQuery->SQL->Clear();
this->SQLQuery->Params->Items[0]->AsString = _uData.userNickname;
this->SQLQuery->SQL->Add("select * from usersRules where nickUser = :Nickname");
this->SQLQuery->Open();
} catch(...) {
}
и потом забираю данные
_uData.userName = this->SQLDataSet->FieldByName("nameUser")->AsString;
Проблема в том, что на строке
this->SQLQuery->Params->Items[0]->AsString = _uData.userNickname;
вылетает ошибка
Project MyProject.exe raised exception class EListError "List index out of bounds (0)".
Подскажите, как исправить??
Вывод: поменять местами строчки:
this->SQLQuery->Params->Items[0]->AsString = _uData.userNickname;
this->SQLQuery->SQL->Add("select * from usersRules where nickUser = :Nickname");