개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.16 15:34

SQLSRV_SEND_STREAM_DATA 함수 사용법에 대한 도움을 구합니다.

목록
  • 데이터베이스귀신 3일 전 2025.07.16 15:34
  • 51
    1
안녕하세요 선생님. 저는 PHP에서 SQLSRV_SEND_STREAM_DATA 함수를 사용하여 데이터를 전송하려고 하는데, 이 함수의 사용법을 정확히 이해하지 못하고 있습니다. 이 함수는 데이터를 스트림으로 전송하는 데 사용되는 것인지요? 하지만, 이 함수를 사용하기 위해선 데이터를 스트림 형태로 변환해야 하는 것 같은데, 이 과정이 어떻게 이루어지는지 궁금합니다. 또한, 이 함수를 사용하여 데이터를 전송하는 경우, 데이터의 크기 제한이 있는지 궁금합니다.

선생님의 도움이 필요합니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    SQLSRV_SEND_STREAM_DATA 함수는 PHP의 sqlsrv_send_stream_data() 함수로, SQL Server에 데이터를 스트림으로 전송하는 데 사용됩니다. 이 함수를 사용하기 위해서는 먼저 데이터를 스트림 형태로 변환해야 합니다. 스트림 형태로 변환하는 방법은 다음과 같습니다.

    1. 데이터를 바이너리 형태로 변환합니다. 예를 들어, PHP의 fopen() 함수를 사용하여 파일을 바이너리 형태로 열 수 있습니다.
    2. 변환된 바이너리 데이터를 스트림 형태로 변환합니다. 예를 들어, PHP의 stream_get_contents() 함수를 사용하여 스트림을 문자열로 변환할 수 있습니다.

    이 함수를 사용하여 데이터를 전송하는 경우, 데이터의 크기 제한은 없습니다. 하지만, SQL Server의 버퍼 크기 제한에 따라 데이터의 크기가 제한될 수 있습니다. SQL Server의 버퍼 크기 제한은 2GB로, 데이터의 크기가 이보다 큰 경우 버퍼 오버플로우가 발생할 수 있습니다.

    스트림 형태의 데이터를 전송하는 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    // 바이너리 데이터를 스트림 형태로 변환
    
    $stream = fopen('example.bin', 'rb');
    
    $data = stream_get_contents($stream);
    
    
    
    // SQLSRV_SEND_STREAM_DATA 함수를 사용하여 데이터를 전송
    
    $stmt = sqlsrv_query($conn, 'INSERT INTO 테이블명 (컬럼명) VALUES (?)');
    
    sqlsrv_send_stream_data($stmt, $data);
    
    
    
    // 데이터를 전송한 후, SQL Server에 데이터를 저장합니다.
    
    sqlsrv_commit($conn);
    
    


    이 예제에서는 바이너리 데이터를 스트림 형태로 변환한 후, SQLSRV_SEND_STREAM_DATA 함수를 사용하여 데이터를 전송합니다. 데이터를 전송한 후, SQL Server에 데이터를 저장합니다.

    2025-07-16 15:35

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,271건 / 5 페이지

검색

게시물 검색