- Код: Выделить всё
- select `name`,`count`,`place`,`procearned`,`period_to`,`numbercar`,`vincode`,`numberpasp`,`year_make`,`maker`,`vladeler`,`datedocto`,`datedoctoend` from cars
в консоли показывает все 51 запись. TSQLQuery возвращает только 10! В чем может быть проблема?
Как работает запрос:
- Код: Выделить всё
- function TDBConnect.DoAnySQL(SQL: TStringList): integer;
 var
 i, fi, fc: integer;
 ss: string;
 begin
 if SQL = nil
 then begin
 Result := -1;
 exit;
 end;
 fSQLQuery.sql.Text := SQL.Text;
 fSQLQuery.Open;
 Result := fSQLQuery.RecordCount;
 if Result > 0
 then begin
 SQL.Clear;
 fc := pred(fSQLQuery.FieldCount);
 for i := 1 to Result
 do begin
 ss := '';
 for fi := 0 to fc do ss += fSQLQuery.Fields[fi].AsString + #1;
 Delete(ss, Length(ss), 1);
 SQL.Append(ss);
 fSQLQuery.Next;
 end;
 end;
 fSQLQuery.Close;
 end;
Добавлено спустя 43 минуты 53 секунды:
И еще. В этой же таблице пытаюсь обновить запись
- Код: Выделить всё
- function TFormDirectorEditCar.DoEdit: boolean;
 begin
 Result := false;
 if ComboBoxPlaces.ItemIndex < 0 then
 begin
 ShowMessage('Не выбрано место пребывания!');
 exit;
 end;
 ClientConn.Connect.ExecAnySQL('update cars set `count`='+#39+IntToStr(SpinEditKolvo.Value)+#39+
 ',`place`='+#39+ComboBoxPlaces.Text+#39+
 ',`procearned`='+#39+IntToStr(SpinEditProcZP.Value)+#39+
 ',`period_to`='+#39+IntToStr(SpinEditPeriod.Value)+#39+
 ',`numbercar`='+#39+EditGosN.Text+#39+
 ',`vincode`='+#39+EditVIN.Text+#39+
 ',`numberpasp`='+#39+EditPasp.Text+#39+
 ',`year_make`='+#39+IntToStr(SpinEditYOut.Value)+#39+
 ',`maker`='+#39+EditMaker.Text+#39+
 ',`vladeler`='+#39+EditVladelec.Text+#39+
 ',`datedocto`='+#39+DateTimeToStr(DateEditTalonDate.Date)+#39+
 ',`datedoctoend`='+#39+DateTimeToStr(DateEditTalonTo.Date)+#39+
 ' where `name`='+#39+EditCar.Text+#39+
 ' limit 1');
 UpdateGrid;
 Result := true;
 end;
В таблице обновляется. Т.е.
- Код: Выделить всё
- procedure TFormDirectorEditCar.UpdateGrid;
 var
 cou, i, ci: integer;
 sl: TStringList;
 nowS: string;
 begin
 { Очистили таблицу }
 StringGrid1.RowCount:=1;
 sl := TStringList.Create;
 sl.Text:= 'select `name`,`count`,`place`,`procearned`,`period_to`,`numbercar`,`vincode`,`numberpasp`,`year_make`,`maker`,`vladeler`,`datedocto`,`datedoctoend` from cars';
 cou := ClientConn.Connect.DoAnySQL(sl);
 if cou > 0 then
 begin
 StringGrid1.RowCount:= succ(cou);
 for i := 1 to cou
 do begin
 nowS:= sl[pred(i)];
 for ci := 0 to 12
 do StringGrid1.Cells[ci, i] := LSGet(nowS, succ(ci));
 end;
 end;
 sl.Free;
 end;
я вижу, что данные обновились. Но реально, они остаются прежними. TSQLQuery не связан DB-компанентами. Я его использую для простых запросов к MySQL.
Добавлено спустя 25 минут 30 секунд:
С количеством записей разобрался. За это отвечает параметр "PacketRecords". Но возник другой вопрос: как загрузить, скажем, 1000 записей, если "PacketRecords" равен 100?





