Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка из БД (where), MSVC++6, ADO, MSSQL 
:(
    Опции темы
nicvc
Дата 6.3.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В программе: слева – дерево, справа – грид.
Для дерева таблица TabTree c полями NodeID, NodeParentID, NodeName.
Для грида таблица TabGrid с полями ParamID, ParamName, ParamValue и полями NodeID, NodeName  
В гриде для каждого узла дерева должны отображаться только параметры, соответствующие текущему узлу дерева по полям NodeParentID или NodeName.

Затруднения (сомнения) в выборе стратегии реализации работы с БД.

Вопрос1
По какому полю (NodeID или NodeName) делать выборку в грид. Как это реализовывается ОБЫЧНО.
Для двух ситуаций: узлы в дереве уникальны или не уникальны (если есть разница).

Вопрос2
Попробовал обоими способами – по NodeName получилось, а по NodeID нет, т.к. поле числовое.
Примеры выборок в литературе – после WHERE либо текст, либо число (н-р 5), а чтобы вместо числа была числовая переменная – такого примера не нашел.
Пробовал так:
int Node = 5;    
sql.Format("SELECT ParamName, ParamValue FROM TabGrid WHERE NodeID = Node ");
Ошибка: invalid column name ‘Node’
Прошу приведите пример.

Вопрос3
Посоветуйте, в каких полях в таблицах делать ключ и индекс.

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


Новичок



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

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



Интересует только вопрос1.
Отчего зависит?
PM MAIL   Вверх
medicdim
Дата 4.6.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

int rec_id
rec_id=5

Query1->SQL->Clear();
Query1->SQL->Add("select ParamID, ParamName, ParamValue, NodeID, NodeName from TabTree");
Query1->SQL->Add("where NodeId="+IntToStr(rec_id))
Query1->Active=true;


Кдючевые поля должны включать в себя идентефикаторы (ID).

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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