Чтобы получить всех агентов с навыком 1, откройте конструктор запросов и создайте следующий запрос:
это сгенерирует следующий sql
SELECT Skills.AgentName FROM Skills WHERE (((Skills.Skill1) = 1));
Если вы измените имена, вы также можете вставить этот запрос в панель SQL конструктора, чтобы получить нужный запрос. Чтобы получить все навыки, которые есть у агента, я выбрал параметризованный запрос. Откройте конструктор запросов и создайте новый запрос:
Когда вы выполните этот запрос, он запросит у вас имя агента. Убедитесь, что вы точно ввели имя агента. Вот итоговый sql:
SELECT Skills.AgentName, Skills.Skill1, Skills.Skill2, Skills.Skill3 ОТ Skills WHERE (((Skills.AgentName) = [Агент]));
[1112 ] Если вы продолжите работу с этим запросом, я бы улучшил дизайн таблицы, разбив ее на таблицу навыков, таблицу операторов, таблицу навыков и агентов. Затем свяжите таблицы навыков и агентов с таблицей навыков и агентов во многих отношениях. Запрос на получение всех навыков агентов будет выглядеть в конструкторе следующим образом:
Это раньше позволялось, но изменялось в gcc 3.4.
В шаблонном определении дисквалифицированные имена больше не будут находить членов зависимой основы (как указано [temp.dep]/3 в стандарте C++). Например,
template <typename T> struct B {
int m;
int n;
int f ();
int g ();
};
int n;
int g ();
template <typename T> struct C : B<T> {
void h ()
{
m = 0; // error
f (); // error
n = 0; // ::n is modified
g (); // ::g is called
}
};
Необходимо сделать зависимого имен, например, путем добавления префикса их это->. Вот исправленное определение C:: h,
template <typename T> void C<T>::h ()
{
this->m = 0;
this->f ();
this->n = 0
this->g ();
}
Я понял этого:
По-видимому, первым примером не ЯВЛЯЕТСЯ допустимый C++, и это плохо, что msvc берет это. Существуют решения, отправленные на облегченных часто задаваемых вопросах C++.