BravoFileWriter / BravoReadFile
Phạm vi áp dụng
✅ Bravo 8 · ✅ Bravo 10
Ý nghĩa
Dùng để ghi / đọc nội dung text hoặc binary ra 1 file.
| ClassName | Chức năng |
|---|---|
BravoFileWriter | Ghi file |
BravoReadFile / BravoFileReader | Đọc file |
Cú pháp
<Eval_X>
<ClassName>BravoFileWriter</ClassName>
<fileAction>Gia_tri</fileAction>
<overwriteExistingFile>Gia_tri</overwriteExistingFile>
<zFileName>Gia_tri</zFileName>
<Value>Gia_tri</Value>
</Eval_X>Thuộc tính
| Thẻ | Nội dung |
|---|---|
fileAction | Xử lý sau khi đã ghi file thành công: • Nothing — không làm gì cả• OpenFile — mở file đã ghi• OpenFolder — mở thư mục lưu file |
overwriteExistingFile | Xử lý khi file đã tồn tại (vd. Confirm) |
zFileName | Tên và đường dẫn file. Nếu chỉ có tên file → tự động dùng đường dẫn Temp. Bỏ trắng → tự động dùng tên ngẫu nhiên |
| Value | Biểu thức trả về nội dung để ghi vào file |
fileLocation | Nơi lưu file: • DatabaseServer — lưu tại server cài đặt CSDL• Local — lưu tại máy client |
fileNotFoundAction | (mặc định Ignore) Lựa chọn việc đọc dữ liệu:• Ignore — bỏ qua lỗi khi đọc file có lỗi• SetNull — cho phép xóa trắng ô chọn file• Error — hiển thị lỗi của chương trình |
| zCustomConnectionName | Kết nối đến Server khác (có tác dụng từ v4.1.7) |
nCommandTimeout | Số giây tối đa chờ câu lệnh query trước khi báo lỗi timeout |
Yêu cầu quyền
Khi sử dụng Eval để ghi hoặc đọc file thì user đăng nhập SQL phải có quyền đọc/ghi file phù hợp.
Các file
txt,xml,csv,tsvsẽ được xử lý như file văn bản.
Ví dụ đầy đủ — lưu và đọc file từ đường dẫn server
1. Khai báo cột tạm chứa nội dung file
<TempColumns>
<FileContent>
<DataType>System.Byte[]</DataType>
</FileContent>
</TempColumns>2. Đọc file khi tải dữ liệu
<ServerLoaded>
<Eval_FileContent>
<ClassName>BravoFileReader</ClassName>
<DataMember>FileContent</DataMember>
<fileLocation>DatabaseServer</fileLocation>
<zFileName>G:\DATABASES2\SQL2014\Asset{=Code}.zip</zFileName>
<fileNotFoundAction>SetNull</fileNotFoundAction>
</Eval_FileContent>
</ServerLoaded>3. Ghi file — khai báo ở ColumnChanged hoặc ServerUpdating
<Eval_BravoFileWriter>
<ClassName>BravoFileWriter</ClassName>
<fileLocation>DatabaseServer</fileLocation>
<zFileName>G:\DATABASES2\SQL2014\Asset{=Code}.zip</zFileName>
<Value>FileContent</Value>
<overwriteExistingFile>Confirm</overwriteExistingFile>
<fileAction>Nothing</fileAction>
</Eval_BravoFileWriter>Note
Cho dù lưu hay chưa lưu thì file cũng sẽ luôn được ghi vào đường dẫn ở
zFileName.
4. Lưu tên file
<ColumnChanged>
<FileContent>
<Eval_SaveName>
<DataMember>FileName</DataMember>
<Value>IIF(FileContent IS NULL, '', 'G:\DATABASES2\SQL2014\Asset' + Code + '.zip')</Value>
</Eval_SaveName>
</FileContent>
</ColumnChanged>5. Layout — control chọn file
<txtFileName>
<ClassName>BravoDocInputBox</ClassName>
<Dock>Top</Dock>
<allowMultiSelect>ZipAlways</allowMultiSelect>
<DataMember>FileContent</DataMember>
<Column>1</Column>
<Width>90</Width>
</txtFileName>Liên quan
BravoAddFileEvaluator · BravoDocInputBox · TempColumns · Attach File