Vadim спасибо, сейчас буду пробовать...
Добавлено спустя 1 час 3 минуты 48 секунд:Re: Lazarus 30 64 bit и Zeos 6.6.6. Error:Bookmark was not foundОтлично, помогло. Огромное спасибо.
Кстати, если кто работает с zeos и юзает PostgreSQL, может напороться на проблему парсинга запросов, в которых прописано приведение типа. (Например select field::bigint from table). Проблема состоит в том что зеос считает что на месте такого приведения типа стоит параметр, заменяет двойное двоеточие на одинарное, и выдает ошибку выполнения запроса.
SQL Error: ERROR:  syntax error at or near ":"
СТРОКА 1:select id_portfolio:bigint, 'test':characte..
Чтобы обойти этот трабл можно подкорректировать сорсы компонента (
zeos 6.6.6, 7 - работает).
В модуле ZSqlStrings. Надо зменить метод TZSQLStrings.RebuildAll. 
На 
- Код: Выделить всё
 procedure TZSQLStrings.RebuildAll;
var
  Tokens: TStrings;
  TokenValue: string;
  TokenType: TZTokenType;
  TokenIndex: Integer;
  ParamIndex: Integer;
  ParamIndices: TIntegerDynArray;
  ParamIndexCount: Integer;
  ParamName, SQL: string;
  Tokenizer: IZTokenizer;
  procedure NextToken;
  begin
    TokenType := TZTokenType({$IFDEF FPC}Pointer({$ENDIF}
      Tokens.Objects[TokenIndex]{$IFDEF FPC}){$ENDIF});
    TokenValue := Tokens[TokenIndex];
    Inc(TokenIndex);
  end;
begin
  FParams.Clear;
  FStatements.Clear;
  SQL := '';
  ParamIndexCount := 0;
  SetLength(ParamIndices, ParamIndexCount);
  
  { Optimization for empty query. }
  If Length(Trim(Text)) = 0 then
    Exit;
  { Optimization for single query without parameters. }
  if (not FParamCheck or (Pos(FParamChar, Text) = 0))
    and (not FMultiStatements or (Pos(';', Text) = 0)) then
  begin
    FStatements.Add(TZSQLStatement.Create(Text, ParamIndices, FParams));
    Exit;
  end;
  Tokenizer:=GetTokenizer;
  Tokens := Tokenizer.TokenizeBufferToList(Text,
    [toSkipComments, toUnifyWhitespaces]);
  try
    TokenIndex := 0;
    repeat
      NextToken;
      { Processes parameters. }
      if ParamCheck and (TokenValue = FParamChar) then
      begin
        NextToken;
        if (TokenType <> ttEOF) and (TokenValue <> FParamChar) [b]and (TokenValue <> '=')[/b] then
        begin
          { Check for correct parameter type. }
          if not (TokenType in [ttWord, ttQuoted]) then
            raise EZDatabaseError.Create(SIncorrectToken);
          SQL := SQL + '?';
          ParamName := TokenValue;
          if (ParamName <> '') and (ParamName[1] in [#39, '`', '"', '[']) then
          begin
            ParamName := Tokenizer.GetQuoteState.
              DecodeString(ParamName, ParamName[1]);
          end;
          ParamIndex := FindParam(ParamName);
          if ParamIndex < 0 then
            ParamIndex := FParams.Add(ParamName);
          Inc(ParamIndexCount);
          SetLength(ParamIndices, ParamIndexCount);
          ParamIndices[ParamIndexCount - 1] := ParamIndex;
          Continue;
        end
        [b]else
          if (TokenType <> ttEOF) and ((TokenValue = ':') or (TokenValue = '=')) then
            SQL := SQL + ':';[/b]
      end;
      { Adds a DML statement. }
      if (TokenType = ttEOF) or (FMultiStatements and (TokenValue = ';')) then
      begin
        SQL := Trim(SQL);
        if SQL <> '' then
          FStatements.Add(TZSQLStatement.Create(SQL, ParamIndices, FParams));
        SQL := '';
        ParamIndexCount := 0;
        SetLength(ParamIndices, ParamIndexCount);
      end
      { Adds a default token. }
      else
        SQL := SQL + TokenValue;
    until TokenType = ttEOF;
  finally
    Tokens.Free;
  end;
end;
 (с) исправления Оldwayder