복붙노트

[SQL] 어떻게 MS Access 데이터베이스 페이징을 + 검색하려면?

SQL

어떻게 MS Access 데이터베이스 페이징을 + 검색하려면?

나는 제품 코드라는 이름의 기본 키가있는 테이블라는 제품 1와 MS 액세스 2003 데이터베이스가 있습니다. 어떤 자동 ID 열이 없습니다.

나는 사용자 정의 데이터 페이징을 수행하기 위해 SQL을 사용하고 있습니다.

 SELECT *
FROM (
  SELECT Top 1  -- = PageSize
  *
  FROM
  (
   SELECT TOP 1  -- = StartPos + PageSize
   *
   FROM product1
   ORDER BY product1.[Product Code]
  ) AS sub1
  ORDER BY sub1.[Product Code] DESC
 ) AS clients
ORDER BY [Product Code]

이제 내 문제는 검색이다. 언제 데이터베이스 테이블에 뭔가를 검색하고 그것을 가리 킵니다.

어떻게 확인 여전히 작품의 벌금을 페이징 할 수 있습니까?

해결법

  1. ==============================

    1.나는 (페이징 및 검색 포함)뿐만 아니라 C #을 액세스를 조회하고있어, 나는 내 모든 쿼리를 작성하려면 다음 코드를 사용하고 있습니다 :

    나는 (페이징 및 검색 포함)뿐만 아니라 C #을 액세스를 조회하고있어, 나는 내 모든 쿼리를 작성하려면 다음 코드를 사용하고 있습니다 :

    var sb = new StringBuilder();
    sb.Append("select {0} from {1}");
    sb.Append(" where {3} in (");
    sb.Append("select top {4} sub.{3}");
    sb.Append("    from (");
    sb.Append("          select top {5} tab.{3}");
    sb.Append("          from {1} tab");
    sb.Append("          where {2}");
    sb.Append("          order by tab.{3}");
    sb.Append("    ) sub");
    sb.Append("    order by sub.{3} desc");
    sb.Append(")");
    sb.Append("order by {3}");
    
    sql = string.Format(sb.ToString(), this.ColumnsToSelect, this.TableName, 
        this.WhereClause, this.OrderBy, this.PageSize, this.PageNum * this.PageSize);
    

    작업이 위해서는, 모든 매개 변수를 제공해야합니다 (당신이 실제로 필터 아무것도하지 않으려면 그냥 WHERE 절에 1 = 1을 넣어)

  2. from https://stackoverflow.com/questions/6914637/how-to-do-ms-access-database-paging-search by cc-by-sa and MIT license