Из SQLite в массив

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

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

Ответить
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Из SQLite в массив

Сообщение mrkaban »

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

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: Прошу прощения за глупые вопросы и ошибки, новичок.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

нечто такого

Код: Выделить всё

      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;

Книгу для дельфина в руки. Или... хотя бы гуглом пользуйтесь.
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

Код: Выделить всё

    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;
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

Спасибо Вам большое! Помогло!
Ответить