Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > отражение данных пользователя


Автор: Bakalim 24.9.2016, 15:09
Здравствуйте дорогие участники! Прошу совета по следующему вопросу. Понадобилось написать простенькое приложение для учета рабочего времени внутри компании.
Использовал С++ Builder 5 и СУБД Oracle.
Однако столкнулся с некоторыми трудностями решение которых не могу найти в интернете.
Ситуация такая. В базе данных имеется таблица пользователей в которой содержится их ID, username и  password. Подключаюсь к базе посредством технологии ADO. Итак, сначала у меня всплывает форма авторизации при вводе правильного имени  и пароля происходит открытие формы 1, скрытие формы авторизации, а также в Edit1 на форме 1 отправляется id пользователя.

На  форме 1 у меня расположены DBGridEh1, который связан с DataSource5, а та в свою очередь с ADOQuery4.  Также на форме расположены DateTimePicker1,DateTimePicker2, Edit1. Через этот DBGridEh1 происходит ввод и отражение данных  таблицы базы данных V_TIME_WORKS.  в свойстве SQL компонента  ADOQuery4 прописано следующее:

Код

select * from V_TIME_WORKS where user_id=978 



проблема вот в чем константу 978 мне надо заменить на значение внесенное в Edit1  при авторизации. Нужно это для того чтобы отражать каждому пользователю только его информацию, поскольку  V_TIME_WORKS это общая таблица для всех пользователей.  А также нужно в условие запроса добавить выборку по дате ... and data between дата из DateTimePicker1 and DateTimePicker2.

Подскажите пожалуйста как это сделать? Я пытался   в свойстве SQL компонента  ADOQuery4 написать так:

Код

select * from V_TIME_WORKS where user_id=:n1



где :n1 это параметр. его я добавляю через свойство Parameters компонента  ADOQuery4. в открывшемся  редакторе параметров я пытаюсь этому параметру установить свойство value в =Edit1->Text однако при активации ADOQuery4 появляется ошибка: ora-01722 invalid number 
понимаю что возможно проблема в том что в Edit1 содержится текст, поэтому попытался ставить такой вариант  =StrToInt(Edit1->Text) однако это не решает проблему. Подскажите пожалуйста чайнику как решить проблему?

 



 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)