C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Доступ к полям, Помогите, очень надо.
maikl
  Отправлено: 15.12.2003, 11:37


Станционный диспетчер

Группа: Участник
Сообщений: 135



Как можно обратиться к определенной ячейке в БД, в Excel например B2(вторая ячейка в поле cool.gif, мне нужно так же обратиться к определенной ячейке в БД, и сравнить его со значением в другом поле другой БД.

Пожалуйста кто нибудь ответьте очень надо. smile.gif
** pasha
Отправлено: 15.12.2003, 16:52


Не зарегистрирован







Очень поможет книжка Елмановой или Архангельского ("Литература")
Там работа с базами данных, связь таблиц и пр
описаны подробно и просто, есть примеры
anatoliys
Отправлено: 15.12.2003, 17:45


Не зарегистрирован







Топик чуть ниже:

Edit1->Text= Table1->FieldByName("Nomer")->AsString; (или Value)
maikl
Отправлено: 16.12.2003, 10:23


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (anatoliys @ 16/12/2003, 02:47)
Edit1->Text= Table1->FieldByName("Nomer")->AsString; (или Value)

А вот тут чуть по подробнее, если выполнить тот код что ты сказал то в поле Edit1 выведится то что находится в первой записи поля Nomer, а мне нужно узнать что находится не в первой записи, а например в пятой, это я и хочу узнать.[SQL]
anatoliys
Отправлено: 16.12.2003, 10:33


Не зарегистрирован







А вот тут чуть по подробнее, если выполнить тот код что ты сказал то в поле Edit1 выведится то что находится в первой записи поля Nomer, а мне нужно узнать что находится не в первой записи, а например в пятой, это я и хочу узнать.[SQL] [QUOTE]

Ну например Вы в "Query1" пишите запрос на определенную выборку и смотрите записи, в "DBGrid1" и вот тут тот и подойдет приведенный способ.
Edit1->Text = Table1->FieldByName("Nomer")->AsString;
В "Edit1" находится значение записи, на которой стоит курсор.

Или нужно чтот другое?

P.S.
Может более знающие люди, меня поправят или предложат другой вариант.
maikl
Отправлено: 16.12.2003, 10:45


Станционный диспетчер

Группа: Участник
Сообщений: 135



Нет мне не это надо, я просто пишу программу в которой у меня постоянно сравниваются значения между собой тип у них Number, а эти значения находятся в разных ячейках БД, я знаю где они находятся но мне нужно их сравнивать, а как узнать какая цифра там сейчас находится я не знаю, потому что не знаю как туда обратиться.
Guest
Отправлено: 16.12.2003, 12:24


Не зарегистрирован







Переходишь на запись с номером Y
Читаем поле X
Сравниваем
maikl
Отправлено: 16.12.2003, 13:12


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (Guest @ 16/12/2003, 21:26)
Переходишь на запись с номером Y
Читаем поле X
Сравниваем

Ну это и так понятно, а по подробнее можно, я не слишком силен в базах данных, пример если можно не помешает, посмотреть хочется.
anatoliys
Отправлено: 16.12.2003, 14:01


Не зарегистрирован







Честно говоря не совсем понятна идея.
- Если одна таблица, и в ней есть два поля, и над ними нужно произвести "математические" действия, то можно подумать над созданием вычисляемого поля. ( ~Lookup)

- Можно создать запрос который будет находить одну конкретную запись, в ней брать определенное значение и сравнивать с твоим, и потом сделать определенные действия.
Сделать можно на ХП в которую передовать значение для сравнения, или сразу все одним запросом.

Способов много, в зависимости от того, что нужно в конечном итоге поиметь. Я не понял что нужно, а так некоторые мысли "провертел" Вам.

maikl
Отправлено: 16.12.2003, 14:14


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (anatoliys @ 16/12/2003, 23:03)
Честно говоря не совсем понятна идея.
- Если одна таблица, и в ней есть два поля, и над ними нужно произвести "математические" действия, то можно подумать над созданием вычисляемого поля. ( ~Lookup)


Я не говорил что у меня все находится в одной базе. Информация находятся в разных базах, в разных ячейках, я знаю где что находиться, но не знаю что в них, так как они могут изменяться у меня (вычисляемое поле) , поэтому то я и хочу считать то что находиться в ней.
sanatoliy
Отправлено: 16.12.2003, 14:53


Не зарегистрирован








нужно написать запрос: (select)
- два запроса, для выбора нужных записей и вроде как все.
- получить результат

(вот как разумно сделать к двум БД не знаю.
может использовать два компонента для доступа к 2м базам или все сделать через хранимые процедуры как-то.)
Есть форму sql.ru там люди напишут запрос Вам толково.
Сам не силен в СУБД.

Удачи.
Nick
Отправлено: 16.12.2003, 16:28


Машинист паровоза

Группа: Участник
Сообщений: 247




В книге Архангельского поле с номером n Table->Fields[n]

но у меня не получилось, с Table не работаю

Вывод на экран поля N7 текущей записи
TField *fl = pFIBDS_DocsList->Fields->FieldByNumber(7);
ShowMessage( fl->AsString );

Table->First()  — первая запись

MoveTo( int i ) премещение по записям i>0 вперед, i<0 назад



maikl
Отправлено: 16.12.2003, 16:58


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (Nick @ 17/12/2003, 01:30)
TField *fl = pFIBDS_DocsList->Fields->FieldByNumber(7);

Это похоже то что и было мне нужно, а в книге Архангельского я тоже смотрел и я сразу понял что это не то что я ищу, поэтому и пришлось обратиться к вам. Спасибо за подсказку. Думаю что тут к чему относится дальше попробую сам разобрать.

Вернуться в Работа с базами данных в C++Builder