Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получать данные из БД, Delphi 
:(
    Опции темы
Smog
Дата 6.2.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я не понимаю, если мне нужно взять из базы данные, то как это лучше делать? 
Ну то есть есть таблица, которая хранит сообщения и запросом на выдачу сообщений темы такой-то будет  

Код



SELECT 
 MESS_ID, 
 AUTOR, 
 MES, 
 DATE, 
 IS_SIGN, 
 IS_SMILES 
FROM 
 TOPICS  
where TREAD_ID=1 and FORUM_ID=2 
 

 


И что я никуда, кроме DBGrid не помещу эти данные? А что потом из него их вытаскивать ручками? 
Мне же надо в переменные их запихать, а не в таблицу 
 

ps firebird 1.5 (embedded) + FIBplus + Delphi 7

Или для этого надо юзать Query? и чтобы получить значения каждой переменной, делать запрос на каждую?
PM MAIL   Вверх
LSD
Дата 6.2.2007, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



DBGrid позволяет перемещаться по данным (next/previous). Перешел на нужную строку, считал данные из колонок, записал их в переменные и переходишь к следующей строке.

Модератор: перемещено из Общие вопросы по базам данных


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Smog
Дата 7.2.2007, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



LSD, Это все так делают? это рационально? smile
PM MAIL   Вверх
ТоляМБА
Дата 7.2.2007, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Код

Query1.Close;
Query1.SQL.Text:='Select Field1 from table1';
Query1.Open;
Query1.First;
while not Query1.eof do begin
 v:=Query1.FieldValues['Field1'];
...
Query1.Next;
end;
Query1.Close;
 Можеш в цикле заполнять динамический массив и потом его в другом цикле обрабатывать - зависит от задачи.
PM   Вверх
Smog
Дата 7.2.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача в следующем: вытащить из базы несколько значений и вставить их в html шаблон...
PM MAIL   Вверх
ТоляМБА
Дата 7.2.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Цитата(Smog @  7.2.2007,  09:51 Найти цитируемый пост)
вытащить из базы несколько значений 
 Вот по этой части тебе дали два варианта решения. Ты хоть один пробовал? Если нет - извини...

PM   Вверх
Данкинг
Дата 7.2.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Smog @ 7.2.2007,  06:03)
LSD, Это все так делают? это рационально? smile

А что нерационального-то? Вытаскиваешь в запрос нужные тебе строки и с ними уже работаешь с помощью .locate, .first, .next, .fieldvalues и т.п.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
ТоляМБА
Дата 7.2.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Цитата(Данкинг @  7.2.2007,  12:01 Найти цитируемый пост)
А что нерационального-то?
 Давайте не будем вводить путаницу: LCD отвечал ПРИМЕНИТЕЛЬНО к DBGridу так как Smog  спрашивал про DBGrid, но если на форме НЕ НУЖЕН DBGrid, то зачем делать на форме визуальный компанент и всобачивать ему Visible:=False ??? Рациональнее будет сделать через Query и цикл.
PM   Вверх
Smog
Дата 7.2.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, вот таким образом получилось:
Код


var
v:variant;
begin
pFIBDatabase1.Connected :=true;
pFIBTransaction1.Active:=true;
pFIBQuery1.Close ;
pFIBQuery1.SQL.Clear;
pFIBQuery1.SQL.Add('SELECT MESS_ID,  AUTOR,  MES, IS_SIGN, IS_SMILES  FROM   TOPICS ');
pFIBQuery1.SQL.Add('where TREAD_ID=1 and FORUM_ID=2');
pFIBQuery1.ExecQuery;
while not pFIBQuery1.eof do begin
v:=pFIBQuery1.FieldValue('AUTOR',false);
showmessage(v);
v:=pFIBQuery1.FieldValue('MES',false);
showmessage(v);
pFIBQuery1.Next ;
end;
pFIBQuery1.Close;

DBGrid решил не использовать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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