Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Hỏi:
Tôi có một DB Access và một bảng SQL trữ thông tin. Dưới các tính năng Máy chủ Kết nối của SQL 7.0, tôi đã cho phép SQL xem DB của Access giống như một cơ sở dữ SQL khác. Tôi cũng đã viết thủ tục lưu trữ sao chép các bản ghi từ Access DB vào bảng SQL của bạn. Chạy từ Trình phân tích ISQL/Truy vấn, thủ tục lưu trữ sẽ chạy và hoạt động chính xác. Việc gọi thủ tục lưu trữ từ Dexterity sẽ tạo ra thông báo lỗi sau từ SQL Server: Các truy vấn không đồng nhất yêu cầu các tùy chọn ANSI_NULLS và ANSI_WARNINGS cần được đặt cho kết
nối. Điều này đảm bảo về ngữ pháp truy vấn nhất quán. Bật các tùy chọn này, rồi phát hành lại truy vấn của bạn. Tôi thậm chí có thể chạy thủ tục lưu trữ này từ Dexterity không?


Trả lời:
Có, nhưng chúng tôi sẽ phải sửa đổi một chút quy trình lưu trữ. Lý do không thành công là để đọc bảng SQL đúng cách trong Dexterity, các tùy chọn đó phải được TẮT để quy trình lưu trữ cuộc gọi trong Dexterity phát hành những lệnh này trước khi chạy thủ tục lưu trữ. Người dùng phải đảm bảo dữ liệu vi phạm các quy tắc này không được đưa vào bảng SQL người dùng. Trong mẫu dưới đây, trường table_access là bảng access. Bảng table_test là bảng SQL đầu.

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


INSERT INTO access_table ( DOCNUMBR, DOCAMNT )

SELECT access_test.DOCNUMBR, access_test.DOCAMNT

FROM access_test


GO



Chúng tôi có thể sửa đổi quy trình lưu trữ để đặt cảnh báo như sau:

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


set ANSI_NULLS ON

SET ANSI_WARNINGS ON


exec access_table2 ( DOCNUMBR, DOCAMNT )


GO



Trong trường hợp này, thủ tục lưu trữ sẽ kế thừa các thuộc tính của nội dung gọi là thủ tục. Đối với trường hợp này, sự khéo léo gọi theaccess_tableprocedure sẽ bật ANSI_NULLS & ANSI_WARNINGS và sau đó gọi thủ tục lưu trữ thực và đi vào các tham số của chúng tôi.


Bài viết này đã được TechKnowledge Document ID:10011

TechKnowledge Content

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×