2012-04-08 29 views
7

Tôi đang chuyển đổi một ứng dụng lớn từ Delphi 6 đến Delphi 2009.Rắc rối với loại không phù hợp với TBCDField và TfmtBCDfield và oracle tương thích

Nó được xây dựng ban đầu để sử dụng Oracle 8i nhưng bây giờ cần phải sử dụng đến Oracle 11g. Các ứng dụng ban đầu là khá hạnh phúc bằng cách sử dụng oracle 11g và sẽ làm như vậy nếu tôi xây dựng lại nó bằng cách sử dụng Delphi 6.

Để vượt qua một số ký tự thiết lập/nhân vật hiển thị vấn đề và khó chịu nhỏ khác với các ứng dụng đã phát triển trong 11 năm qua , Tôi quyết định xây dựng lại nó trong một phiên bản sau của Delphi (Mà cũng đã bị trì hoãn trong một vài năm do đó sử dụng năm 2009.) đã được mua cho mục đích này. Tôi đã đánh bại 550+ Compiler Warnings về điều này và cái kia và cái kia.

Nhưng bây giờ hầu hết các bảng/dataset tôi cố gắng mở đối với các báo cáo cơ sở dữ liệu oracle 11g thử nghiệm của tôi "không phù hợp Loại cho trường 'XXXXXX' Mong FmtBCDField thực tế BCD.

Có một khoảng cách này mà không cần mở tất cả 80+ Tôi không nhớ thay đổi tất cả nhưng tôi không thể kiểm tra nó chống lại cơ sở dữ liệu trực tiếp mà không có nhiều lộn xộn về và không muốn làm điều đó chỉ để có được đối diện lỗi tại trang web của khách hàng

Đây là gần như tất cả các trường liên tục trong TClientDataSets được kết nối với truy vấn ADO nhưng là acces sed bằng cách sử dụng FieldByName trong (một lần nữa gần như) tất cả các trường hợp.

Bất kỳ ý tưởng nào?

+0

Xin chào, tôi gặp vấn đề tương tự. Chỉ cần một gợi ý: đầu tiên, hãy thử chạy ứng dụng thực thi và kiểm tra xem sự cố vẫn tiếp diễn. đôi khi nó chạy tốt trên thực thi nhưng có một số lỗi trong khi gỡ lỗi. thứ hai, bạn nói sử dụng ADO. Tôi đoán nó sử dụng trình điều khiển ODBC cho oracle 11g. Có lẽ vấn đề là trình điều khiển ODBC hoặc bản thân ADO. – theodorusap

Trả lời

0

Tôi gặp vấn đề tương tự khi tôi cần ứng dụng DBXpress để làm việc với cả Oracle 9 và 11. Vì lý do nào đó, DBXpress nhận ra một số trường NUMBER theo các cách khác nhau tùy thuộc vào phiên bản cơ sở dữ liệu Oracle. Tôi đã làm việc xung quanh nó bằng cách chuyển các trường số sang các trường số lớn hơn và thay đổi các trường BCD cho các trường FMTBCD trong tất cả các truy vấn của tôi, diễn viên buộc DBXpress phải nhận ra mọi NUMBER là một FMTBCD vì BCD không thể hỗ trợ những con số lớn như vậy. cũng làm việc trên ADO.

Các vấn đề liên quan