Из SQLite в массив

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Из SQLite в массив

Сообщение mrkaban » 30.03.2018 15:07:12

Здравствуйте, подскажите пожалуйста, пытаюсь записать содержимое базы в массив. В базе содержится две строки, но программа записывает в массив два раза одну и ту же строку. Не могу понять где ошибся.

KolVoEl содержит количество строк в таблице и совпадает с реальным количеством.

Код: Выделить всё
SetLength(MassivUserSync, KolVoEl, 6);

      for N := 0 to (KolVoEl - 1) do
    begin
      SQLQuerUserDB.Close;
      SQLQuerUserDB.Active:=false;
      SQLQuerUserDB.SQL.Clear;
      SQLQuerUserDB.SQL.Add('SELECT * FROM UserProgram');
      SQLQuerUserDB.Active:=true;
      MassivUserSync[N][0]:= SQLQuerUserDB.FieldByName('name').AsString;
      MassivUserSync[N][1]:= SQLQuerUserDB.FieldByName('type').AsString;
      MassivUserSync[N][2]:= SQLQuerUserDB.FieldByName('license').AsString;
      MassivUserSync[N][3]:= SQLQuerUserDB.FieldByName('cena').AsString;
      MassivUserSync[N][4]:= SQLQuerUserDB.FieldByName('zamena').AsString;
      MassivUserSync[N][5]:= SQLQuerUserDB.FieldByName('file').AsString;

      end;


PS: Прошу прощения за глупые вопросы и ошибки, новичок.
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Из SQLite в массив

Сообщение pupsik » 30.03.2018 15:57:30

нечто такого
Код: Выделить всё
      SQLQuerUserDB.Close;
      SQLQuerUserDB.Active:=false;
      SQLQuerUserDB.SQL.Clear;
      SQLQuerUserDB.SQL.Add('SELECT * FROM UserProgram');
      SQLQuerUserDB.Open;
      SetLength(MassivUserSync, KolVoEl, 6);//"содержимое базы в массив" Да???? И зачем так заковыристо? Или record отменили уже?
      SQLQuerUserDB.First;
   While not  SQLQuerUserDB.Eof do
   begin
      MassivUserSync[N][0]:= SQLQuerUserDB.FieldByName('name').AsString;
      MassivUserSync[N][1]:= SQLQuerUserDB.FieldByName('type').AsString;
      MassivUserSync[N][2]:= SQLQuerUserDB.FieldByName('license').AsString;
      MassivUserSync[N][3]:= SQLQuerUserDB.FieldByName('cena').AsString;
      MassivUserSync[N][4]:= SQLQuerUserDB.FieldByName('zamena').AsString;
      MassivUserSync[N][5]:= SQLQuerUserDB.FieldByName('file').AsString;
      SQLQuerUserDB.Next;
    end;

Книгу для дельфина в руки. Или... хотя бы гуглом пользуйтесь.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Из SQLite в массив

Сообщение sign » 31.03.2018 07:29:13

Код: Выделить всё
    SetLength(MassivUserSync, KolVoEl, 6);
    SQLQuerUserDB.Close;
    SQLQuerUserDB.SQL.Clear;
    SQLQuerUserDB.SQL.Add('SELECT * FROM UserProgram');
    SQLQuerUserDB.Active:=true;

    for i := 0 to KolVoEl - 1 do begin
      MassivUserSync[i][0] := SQLQuerUserDB.FieldByName('name').AsString;
      MassivUserSync[i][1] := SQLQuerUserDB.FieldByName('type').AsString;
      MassivUserSync[i][2] := SQLQuerUserDB.FieldByName('license').AsString;
      MassivUserSync[i][3] := SQLQuerUserDB.FieldByName('cena').AsString;
      MassivUserSync[i][4] := SQLQuerUserDB.FieldByName('zamena').AsString;
      MassivUserSync[i][5] := SQLQuerUserDB.FieldByName('file').AsString;
 
      SQLQuerUserDB.Next;
   end;
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Из SQLite в массив

Сообщение mrkaban » 31.03.2018 07:50:43

Спасибо Вам большое! Помогло!
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru