다음을 통해 공유


OracleBFile.SetFileName(String, String) 메서드

정의

운영 체제에서 다른 파일에 OracleBFile 개체를 바인딩합니다.

public:
 void SetFileName(System::String ^ directory, System::String ^ file);
public void SetFileName (string directory, string file);
member this.SetFileName : string * string -> unit
Public Sub SetFileName (directory As String, file As String)

매개 변수

directory
String

실제 파일을 포함하는 디렉터리 개체의 별칭입니다.

file
String

운영 체제에 있는 파일 이름입니다.

예외

작업이 트랜잭션 내부에 있지 않은 경우

설명

SetFileName 작업이 성공하려면 트랜잭션 내에 있어야 합니다. 를 호출 SetFileName 하면 BFILE 개체가 OracleBFile 다른 파일과 연결되지만 Oracle 테이블은 업데이트되지 않습니다. 를 호출SetFileName한 후 Oracle 테이블을 업데이트하려면 의 OracleDataAdapter 메서드를 Update 호출한 다음 트랜잭션을 커밋해야 합니다.

또는 속성을 검색 DirectoryName 하면 개체에 OracleBFile 캐시되고 복제 OracleBFile 된 개체의 에 대한 호출 SetFileName또는 데이터베이스의 변경 내용 BFILE 에 영향을 받지 FileName 않습니다. 즉, 서버에서 개체의 BFILE 실제 값을 나타내지 않을 수 있습니다.

또한 속성(DirectoryName 또는 FileName)을 검색하면 두 속성 값이 모두 서버에서 검색되고 개체에 OracleBFile 캐시됩니다.

다음 C# 예제에서는 Oracle 테이블에서 이 스키마를 가정합니다.

(col1 number, col2 BFILE)  

이 예제에서는 및 ReadSeek 메서드를 SetFileName사용하여 개체에 OracleBFile 액세스하는 방법을 보여 줍니다.

byte[] buffer = new byte[100];  
OracleDataReader dataReader = command.ExecuteReader();  
using (dataReader) {  
    if (dataReader.Read()) {  
        OracleBFile BFile = dataReader.GetOracleBFile(1);  
        using (BFile) {  
            BFile.Seek(0, SeekOrigin.Begin);  
            BFile.Read(buffer, 0, 100);  
            command.Transaction = connection.BeginTransaction();  
            BFile.SetFileName("TESTDIR", "File1.jpg");  
            BFile.Read(buffer, 0, 100);  
        }  
    }  
}  

적용 대상