Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите как правильно раскидать результат запроса. [D6, XP]


vegarulez ©   (2007-03-01 16:36:00) 

Привет всем мастерам!
Подскажите как правильно раскидать результат запроса по переменным.

У меня есть вот такой код

         Datamodule2.SQLQuery2.SQL.Clear;
         Datamodule2.SQLQuery2.SQL.add('SELECT CONCAT(id," ",product) FROM Groups');
         Datamodule2.SQLQuery2.Open;
         MyList.Append(Datamodule2.SQLQuery2.Fields[0].AsString);
         //MyList.Append(Datamodule2.SQLQuery2.Fields[1].AsString);
         Datamodule2.SQLQuery2.SQL.Clear;


Когда я делаю

MyList.Append(Datamodule2.SQLQuery2.Fields[0].AsString);

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

MyList.Append(Datamodule2.SQLQuery2.Fields[1].AsString);

Он выдаёт ошибку ничего не помешая в стринг лист.

Подскажите почему так не работает?
Что я делаю не так?


Ega23   (2007-03-01 16:47:00) [1]


> Ega23 ©   (01.03.07 16:43) [6]


Вдогонку: если тебе этот DataSet больше не нужен, то нифигово try..finally добавить и в finally ему Close сделать.


vegarulez   (2007-03-01 16:47:00) [2]

Да, всё ок!
Спасибо.


vegarulez   (2007-03-01 16:44:00) [3]

Подскажите как к ним (к записям) правильно обратится? Для того что бы в MyList поместить?


vegarulez   (2007-03-01 16:44:00) [4]

Спасибо ;)
Сечас попробую.


S@shka   (2007-03-01 16:43:00) [5]

while (not Datamodule2.SQLQuery2.Eof) do
begin
 MyList.Append(Datamodule2.SQLQuery2.Fields[0].AsString);
 ....
 Datamodule2.SQLQuery2.Next;
end;


Ega23   (2007-03-01 16:43:00) [6]


With Datamodule2.SQLQuery2 do
begin  
 if Active then Close;
 SQL.Text := 'SELECT CONCAT(id," ",product) FROM Groups';
 try
   Open;
    While not Eof do
      begin
        MyList.Append(Fields[0].AsString);
        Next;
      end;
 except on E:Exception do
   ShowMessage(E.Message);
 end;
end;


vegarulez   (2007-03-01 16:42:00) [7]

Поле одно (колонка всмысле)
Записей много (строк то бишь)

Так как мне их в переменную MyList'а можно запихнуть?


vegarulez   (2007-03-01 16:40:00) [8]

Есди же в стринг лист помешаю филдлист

MyList.AddStrings(Datamodule2.SQLQuery2.FieldList);

То он помешает тока названия филда (ов) а не значения.

В моём случае, представленном в примере - CONCAT(id," ",product)


S@shka   (2007-03-01 16:39:00) [9]

MyList.Append(Datamodule2.SQLQuery2.Fields[1].AsString); - ОШИБКА

у тебя только одно поле возвращается а ты пытаешься к несуществующему второму обратиться


Ega23   (2007-03-01 16:39:00) [10]

гы...
Сколько полей возвращает твой запрос?
Обрати внимание, не ЗАПИСЕЙ, а ПОЛЕЙ.


Наверх

Титульная страница Поиск, карта сайта Написать письмо