Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

Tham số chuỗi kết nối cho Schema.ini

Tham số chuỗi kết nối cho Schema.ini

Tạo schema.ini để mở hoặc liên kết tệp văn bản từ Access là một trong hai phương pháp khả thi có thể được sử dụng để làm việc với dữ liệu có trong tệp từ Access. Trong bài viết trước, chúng ta đã xem xét các tham số chuỗi kết nối của tệp văn bản. Chúng tôi cũng đã thảo luận về sự cần thiết phải có thêm thông tin lược đồ để giúp Access phân tích cú pháp các tệp văn bản. Microsoft có một trang về schema.ini , nhưng có một số điều chưa rõ ràng ngay lập tức nên chúng tôi sẽ trình bày ở đây.

schema.ini tệp

Mỗi thư mục có thể có một tệp duy nhất có tên schema.ini cho nơi chúng tôi có thể xác định tất cả các định dạng có thể có của tệp văn bản mà chúng tôi mong đợi sẽ tìm thấy trong thư mục. Đối với mỗi tệp văn bản, chúng ta cần bắt đầu một phần bằng tên tệp và sau đó mô tả cấu trúc. Chúng ta sẽ bắt đầu với một phần mẫu tối thiểu sau đó phân tích từng phần. Không nhất thiết phải liệt kê tất cả các tệp văn bản. Bất kỳ tệp văn bản nào không được mô tả bởi schema.ini sẽ được xử lý đơn giản bằng cách sử dụng cài đặt mặc định tốt hơn hoặc tệ hơn. Hãy xem cấu trúc của schema.ini .

[products.txt]

Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0

Col1=Products Text
Col2=Count Long

Lưu ý rằng dòng đầu tiên để bắt đầu một phần phải tham chiếu đến một tệp văn bản. Nó cũng phải có dấu ngoặc để biểu thị phần bắt đầu của phần. Như bạn có thể đã biết, schema.ini có thể mô tả nhiều hơn một tệp văn bản, do đó, dòng trong ngoặc vuông giúp giữ cho lược đồ của mỗi tệp văn bản riêng biệt.

Tập hợp các dòng tiếp theo đề cập đến định dạng tổng thể của tệp và cách Access sẽ xử lý các tệp văn bản. Chúng tôi có thể cho biết liệu một tệp văn bản có tiêu đề hay không, có bao nhiêu hàng để quét, trang mã nào sẽ sử dụng, v.v.

Tập hợp các dòng cuối cùng mô tả các cột riêng lẻ, tên, kiểu dữ liệu và chiều rộng của chúng.

Chúng tôi sẽ xem xét các tùy chọn hợp lệ và các giá trị có thể có cho 2 bộ đó.

Các tùy chọn để mô tả cấu trúc tổng thể của tệp văn bản

Bạn sẽ thấy danh sách các tùy chọn hợp lệ có sẵn để mô tả định dạng tổng thể của tệp văn bản. Thông thường, cần chỉ định tối thiểu FormatColNameHeader nhưng tất cả các nội dung có thể là tùy chọn. Bất cứ khi nào chúng bị bỏ qua, các giá trị mặc định sẽ được sử dụng như được chỉ ra bên dưới. Hãy xem cách chúng tôi có thể mô tả định dạng của một tệp văn bản nhất định.

Tùy chọn cấu trúc tổng thể

Như đã lưu ý, chúng là tùy chọn mặc dù hiếm khi bị bỏ qua. Tuy nhiên, các giá trị mặc định đến từ các khóa đăng ký của công cụ Văn bản. Bạn có thể tìm thêm thông tin chi tiết về khóa đăng ký tại đây.

  • Format :Cho biết định dạng của các tệp văn bản. Nếu bị bỏ qua, hãy sử dụng khóa đăng ký công cụ Văn bản, Format . Giá trị hợp lệ là:
    • TabDelimited :Các tab phân tách các cột.
    • CSVDelimited :Dấu phẩy phân cách các cột giống như tệp CSV.
    • Delimited(*) :Một ký tự đơn phân cách các cột. Có thể là bất kỳ ký tự nào ngoại trừ " tính cách. Ví dụ:một tệp văn bản được phân tách bằng | ký tự phải báo cáo Format=Delimited(|) .
    • FixedLength :Các cột có độ dài cố định; nội dung cần được đệm cho phù hợp. Tất cả các cột phải có chiều rộng xác định.

  • CharacterSet :Sử dụng một trang mã cụ thể để đọc tệp văn bản. Các giá trị có thể có có thể là ANSI , OEM , Unicode hoặc bất kỳ giá trị số nào đại diện cho các trang mã mong muốn. Để tìm tất cả các trang mã có thể được hỗ trợ trên máy Windows của bạn, hãy tìm trong khóa đăng ký Computer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\ . Ví dụ:nếu bạn muốn sử dụng mã hóa utf-8, bạn có thể chỉ định CharacterSet=65001 .
  • ColNameHeader :Cho biết dòng đầu tiên có chứa tên cột hay không. Khi bị bỏ qua, hãy sử dụng khóa đăng ký công cụ Văn bản, FirstRowHasNames . Giá trị có thể là True hoặc False .
  • MaxScanRows :Số hàng Access sẽ quét trong tệp văn bản để đoán kiểu dữ liệu có thể có. Nếu được đặt thành 0, Access sẽ quét toàn bộ tệp. Khóa đăng ký công cụ văn bản MaxScanRows được sử dụng khi bỏ qua.

Tùy chọn bản địa hóa

Các tùy chọn đó chủ yếu giải quyết việc bản địa hóa dữ liệu được mã hóa theo ngày, giờ hoặc đơn vị tiền tệ. Tất cả các tùy chọn đó là tùy chọn và bất cứ khi nào nó bị bỏ qua, cài đặt Vùng của Windows sẽ được sử dụng.

  • DateTimeFormat :Định dạng ngày / giờ để sử dụng.
  • DecimalSymbol :Bất kỳ ký tự đơn nào được sử dụng làm dấu phân cách giữa phần tích phân và phần thập phân của một số.
  • NumberDigits :Số chữ số được sử dụng trong phần phân số của một số.
  • NumberLeadingZeroes :Cho biết nếu có số 0 đứng đầu cho các số lớn hơn -1 và nhỏ hơn 1. Phải là True hoặc False .
  • CurrencySymbol :Xác định biểu tượng được hiểu là đơn vị tiền tệ.
  • CurrencyPosFormat :Mô tả cách số tiền phải được báo cáo trong tệp văn bản. Có bốn giá trị hợp lệ để sử dụng cho cài đặt này được biểu thị bằng số 0 đến 3. Lưu ý rằng ví dụ sử dụng $ nhưng trong thực tế sử dụng, nó sẽ sử dụng ký hiệu tiền tệ thực tế được xác định bởi CurrencySymbol hoặc theo cài đặt của Windows.
    • 0 :Tiền tố không có khoảng trắng (ví dụ:$ 1)
    • 1 :Hậu tố không có khoảng trắng (1 $)
    • 2 :Tiền tố có khoảng trắng ở giữa ($ 1)
    • 3 :Hậu tố có khoảng trắng ở giữa (1 $)

  • CurrencyDigits :Số chữ số ở phần nhỏ của số tiền.
  • CurrencyNegFormat :Cho biết định dạng của một số tiền âm. Nó là một giá trị từ 0-15 như được hiển thị bên dưới. Lưu ý rằng ví dụ sử dụng $ nhưng trong thực tế sử dụng, nó sẽ sử dụng ký hiệu tiền tệ thực tế được xác định bởi CurrencySymbol hoặc theo cài đặt của Windows.
    • 0 :($ 1)
    • 1 :- $ 1
    • 2 :$ -1
    • 3 :$ 1-
    • 4 :(1 $)
    • 5 :- $ 1
    • 6 :1- $
    • 7 :1 $ -
    • 8 :-1 $
    • 9 :- $ 1
    • 10 :1 $ -
    • 11 :$ 1-
    • 12 :$ -1
    • 13 :1- $
    • 14 :($ 1)
    • 15 :(1 $)

  • CurrencyThousandSymbol :Một ký tự duy nhất để biểu thị sự phân tách của hàng nghìn trong một lượng tiền tệ. Nếu bị bỏ qua, cài đặt của Windows sẽ được sử dụng.
  • CurrencyDecimalSymbol :Một ký tự duy nhất để biểu thị số thập phân của một lượng tiền tệ.

Tùy chọn định nghĩa cột

Chúng tôi đã thấy cách chúng tôi có thể xử lý định dạng tổng thể của tệp nhưng chúng tôi cần cung cấp thêm thông tin về cột riêng lẻ. Quan trọng hơn, chúng ta cần có khả năng ánh xạ các kiểu dữ liệu mong đợi của các cột. Ergo, phần thứ ba của schema.ini nên mô tả từng cột, với bao nhiêu hàng cũng như có nhiều cột trong tệp văn bản đích. Định dạng chung cho định nghĩa cột có thể trông như sau:

ColN=Name Type Width #

Điều quan trọng cần lưu ý là ngoại trừ tiền tố ColN= , tất cả các phần là tùy chọn nhưng bạn có thể bỏ qua hay không sẽ phụ thuộc vào các yếu tố khác như được thảo luận bên dưới.

  • ColN= :Một tiền tố bắt buộc phải có ở mỗi đầu dòng. N phải là một số bắt đầu từ 1 và tăng dần.
  • Name :Cung cấp tên cho một cột. Nếu ColNameHeader được đặt thành True , Name tham số có thể được bỏ qua. Tuy nhiên, nếu False , sau đó bạn phải chỉ định Name để tránh sai sót.
  • Type :Cho biết kiểu dữ liệu. Nếu bị bỏ qua, Access sẽ sử dụng dự đoán tốt nhất của nó dựa trên các hàng được quét, được điều chỉnh bởi MaxScanRows lựa chọn. Loại type nên được đặt thành một trong những giá trị hợp lệ đó. Các từ đồng nghĩa được liệt kê sau từ khóa chính tắc:
    • Bit , Boolean
    • Byte
    • Short , Integer
    • Long
    • Currency
    • Single
    • Double , Float
    • DateTime
    • Text , Char
    • Memo , LongChar
    • Date

  • Width # :Cho biết chiều rộng của cột. Nếu điều này được chỉ định, thì Width theo nghĩa đen phải được bao gồm và sau đó là một số. Nếu bạn muốn chỉ ra rằng một cột rộng 50 ký tự, bạn sẽ viết:
    Col17=ProductDescription Text Width 50
    Đối với các tệp có chiều rộng cố định, Width là bắt buộc. Với các tệp được phân tách, bạn có thể bỏ qua nó. Tuy nhiên, Access sẽ sử dụng thông tin này cho các trường văn bản để giới hạn độ dài và có thể cắt bớt nội dung. Đối với các loại dữ liệu khác, độ rộng không ảnh hưởng.

Kết luận

Bạn đã thấy cách bạn có thể kiểm soát giản đồ của tệp văn bản bằng cách sử dụng schema.ini mà bạn có thể tạo trong một thư mục chứa (các) tệp văn bản. Bạn cũng có thể thấy rằng schema.ini cung cấp cho bạn khả năng kiểm soát chi tiết hơn đối với cài đặt khu vực, điều này có thể hữu ích nếu bạn đang xử lý dữ liệu quốc tế và bạn không thể kiểm soát đơn vị tiền tệ hoặc định dạng ngày. Trong bài viết tiếp theo, bạn sẽ xem xét phương pháp thay thế để mô tả cấu trúc của tệp văn bản bằng cách sử dụng các bảng hệ thống của Access.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7 chiến lược để tận dụng tối đa các cuộc họp của bạn

  2. Tổ chức văn phòng tại nhà của bạn để tăng năng suất

  3. Kiểm tra sự kết thúc của một giá trị biến dài trong VBA

  4. Access nói chuyện với các nguồn dữ liệu ODBC như thế nào? Phần 4

  5. Sử dụng tham số lớn cho Microsoft SQL được lưu trữ Thủ tục với DAO