Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2010, 18:33   #1
loki22208
Пользователь
 
Регистрация: 01.05.2010
Сообщений: 18
По умолчанию Как обратится к конкретной ячейке

Введение:
Дана элементарная база данных аксес(всего одна таблица). Нужно произвести над ней в делфи элементарные действия(найти запись с максимальной ценой, выбрать записи удовл. определенным условиям и т.п).
Проблема:
Вобщем саму базу данных в делфи я загрузил(при помощи ADOConnection, AdoTable, DataSource и вывел все на форму при помощи dbgrida). А как обратится к конкретной ячейке ума не приложу.
Нашел вот такую штуку
dbgrid1.Fields[0].AsString
но она работает тока с первой записью.
Вобщем если кто нить может подсказать как выйти из положения не углублясь в тонкости работы с БД, подскажите пожалуйста.

ps. ногами не бить, с БД в делфи первый раз работаю. Мануалы пробовал почитать, но там все слишком заморочено получается, уверен можно проще выход найти.
loki22208 вне форума Ответить с цитированием
Старый 01.05.2010, 19:07   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Она работает с той записью, на которую установлен курсор в DataSet...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 01.05.2010, 19:10   #3
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Аналогичный вопрос... Имеется БД, из неё нужно по шаблону составить отчет...

Код:
procedure TForm2.Image1Click(Sender: TObject);
var
 WordApp, doc:Variant;
 Vr: OleVariant;
begin
 try
  WordApp:= CreateOleObject('Word.Application');
  doc:=WordApp.documents.Open(ExtractFilePath(Application.ExeName)+'DocTemplate.doc');
  WordApp.ActiveDocument.SaveAs(ExtractFilePath(Application.ExeName)+'DocTemplate1.doc');

  WordApp.Visible:=true;
  WordApp.Selection.GoTo(-1, unAssigned, unAssigned, 'Familiya');
  WordApp.Selection.TypeText('Фленов Михаил');

  WordApp.Selection.GoTo(-1, unAssigned, unAssigned, 'Date');
  WordApp.Selection.TypeText(FormatDateTime('dddddd', Date));
 except
  Screen.Cursor:=crDefault;
 end;
Код обращения к шаблону есть, а вот как сделать, чтобы программа брала из БД фамилию и т.д. по установленному курсору не знаю...

Последний раз редактировалось Optigood; 01.05.2010 в 19:12.
Optigood вне форума Ответить с цитированием
Старый 01.05.2010, 19:17   #4
loki22208
Пользователь
 
Регистрация: 01.05.2010
Сообщений: 18
По умолчанию

Как же тогда запустить цикл который будет пробегать все значения конкретного поля?
loki22208 вне форума Ответить с цитированием
Старый 02.05.2010, 12:32   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от loki22208 Посмотреть сообщение
Как же тогда запустить цикл который будет пробегать все значения конкретного поля?
Так:
Код:
DataSet.First;
while not DataSet.Eof do
  Что-то:=DataSet.Fields[0].AsVariant
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 02.05.2010, 21:30   #6
loki22208
Пользователь
 
Регистрация: 01.05.2010
Сообщений: 18
По умолчанию

Оформил так:
datasource1.DataSet.First;
while not datasource1.DataSet.Eof do
listbox1.Items.Add(datasource1.Data Set.Fields[2].Asstring);
В итоге прога циклится
loki22208 вне форума Ответить с цитированием
Старый 02.05.2010, 22:16   #7
loki22208
Пользователь
 
Регистрация: 01.05.2010
Сообщений: 18
По умолчанию

Все с задачей справился вот таким образом:
for i:=1 to booktable.RecordCount do begin
booktable.RecNo:=i;
x:=booktable.Fields[2].AsString;
end;
Всем огромное спасибо
loki22208 вне форума Ответить с цитированием
Старый 03.05.2010, 09:48   #8
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от loki22208 Посмотреть сообщение
Оформил так:
datasource1.DataSet.First;
while not datasource1.DataSet.Eof do
listbox1.Items.Add(datasource1.Data Set.Fields[2].Asstring);
В итоге прога циклится
Если чуток подумать, то можно было бы добавить строчку
datasource1.DataSet.Next
записи то перебирать нужно, а не стоять на одной и той же. Тогда и цикл не будет бесконечным...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 03.05.2010, 20:07   #9
loki22208
Пользователь
 
Регистрация: 01.05.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Если чуток подумать, то можно было бы добавить строчку
datasource1.DataSet.Next
записи то перебирать нужно, а не стоять на одной и той же. Тогда и цикл не будет бесконечным...
Спасиб, учту на будущее))
loki22208 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратится к символам конкретной строки? QuadroX Помощь студентам 1 11.02.2010 12:27
доступ к конкретной ячейке в БД Dimarik Общие вопросы C/C++ 2 20.12.2009 18:47
Как обратится к глобальной переменной из модуля tavrocotaps Общие вопросы Delphi 2 10.06.2009 11:08
Доступ к конкретной ячейке Gorin БД в Delphi 14 27.06.2007 16:24
как обратится HrenoV Общие вопросы C/C++ 1 16.02.2007 18:05