Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    SQL có chứa Function

    Em có 1 câu lệnh dạng
    ketnoi("Select MLD, fncchenhlech(tungay,denngay) from tbl_quatrinhcongtac")

    với fncchenhlech là function được tạo ta trong module.
    Tuy nhiên khi để trong query thì chaỵ được ngay, nhưng nhét vào cùng câu lệnh SQL thì báo lỗi
    fncchenhlech is not a recognized function name.
    Bác nào biết chỉ giáo với

  2. #2
    Ngày tham gia
    May 2016
    Bài viết
    2
    Ðề: SQL có chứa Function

    Vì để trong query thì Access sẽ thực hiện và trả về chuỗi SQL hợp lệ.
    Còn để connection object thực hiện thì nó chỉ thực hiện ngôn ngữ SQL hợp lệ.

    Nói cách khác, Access tích hợp các hàm riêng có của nó vào SQL và gọi thực thi.
    Mỗi phần mềm khác nhau đều có nhúng các hàm của riêng nó vào SQL.
    Ngôn ngữ SQL chỉ có vài hàm: SUM, MAX, MIN, AVG, COUNT
    Đọc lại tài liệu ngôn ngữ SQL chuẩn 86 hay 92 gì đó.

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: SQL có chứa Function

    Nếu bạn xài SQL sever thì cú pháp của bạn sử dùng được đấy.
    :votay:

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: SQL có chứa Function

    Em search trên mạng và thấy nói là có cách chạy cách function . Tuy nhiên hình như phải convert nó. Còn chạy không thì không được đâu bác ơi, may ra chỉ có CSDL là access thì chạy được thôi, còn nếu kết nối ADO với SQL thì nó báo lỗi
    Thằng SQL: 'tenfunction' is not a recognized a function name

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: SQL có chứa Function




    Trích dẫn Gửi bởi behattieu
    Em search trên mạng và thấy nói là có cách chạy cách function . Tuy nhiên hình như phải convert nó. Còn chạy không thì không được đâu bác ơi, may ra chỉ có CSDL là access thì chạy được thôi, còn nếu kết nối ADO với SQL thì nó báo lỗi
    Thằng SQL: 'tenfunction' is not a recognized a function name
    Bạn nói sao vậy, SQL Server sử dụng cú pháp T-SQL, nó không gọi được function được tạo từ SQL Server thì còn làm cái gì được nữa?

    Function trong SQL Server, nếu bạn có cài SQL Server 2000 trở lên, bạn mở Help coi cái funtion của nó ra sao: CREATE FUNCTION ... đó.

    Nói đùa bạn chơi thôi, chứ cái việc bạn đưa function vào câu SQL trong Access hoàn toàn được, đâu có vấn đề gì, nếu bạn sử dụng DAO.Recordset, tạo một recordset bằng một sql string tương tự như của bạn, tôi vẫn lấy được kết quả.

    Nếu bạn dùng ADODB.Recordset thì lúc đó sql string của bạn được hiểu theo T-SQL tức là ngôn ngữ SQL chuẩn của SQL Server. Và như thế function bạn đặt trong sql string, được hiểu như là một function bạn tạo từ SQL Server. Cái vấn đề của bạn là chỗ này.

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    5
    Ðề: SQL có chứa Function

    Em đã kiểm tra đi, kiểm tra lại rồi.
    Với cùng một chương trình access, khi em cho nó kết nối ADO với 1 CSDL access khác thì em vẫn có thể đưa 1 function (được viết trong module) vào để chạy và kết quả thì OK. Tuy nhiên chỉ cần thay chuỗi kết nối từ access thành kết nối với 1 CDSL SQL thì thông báo lỗi ngay.
    Rõ rằng là cái thằng SQL nó không hiểu cái function em đã viết trong module. Nhứ thế để cho nó hiểu được thì phải khai báo nó trong SQL chứ không phải khai báo nó tại chương trình ta đang sử dụng. Theo em hiểu là vậy, đúng không các bác.

    PS: Bác phatnq2002 soi kinh quá, em thích s & l nên nhiều chỗ hay cho thêm vào:ibbanana:

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: SQL có chứa Function

    mình cũng gặp vấn đề này khi chạy câu lệnh query trong access
    query này tạo trong access, có chứa hàm tự định nghĩa trong module của access

    query này chạy trong access thì OK
    nhưng từ ứng dụng khác, dùng ADO kết nối với file access này, rồi chạy query đó thì báo lỗi

    trong sql server thì không bị lỗi: vì mình gọi hàm trong sql dạng: select dbo.tên_hàm_tự_chế(trường 1,trường 2) from...

    nhưng trong access thì thử hoài vẫn chưa được.

    không biết đã có cao thủ nào dùng access mà giải quyết được vấn đề này chưa?

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: SQL có chứa Function

    không biết có bạn nào đã tìm ra cách khác phục lỗi trên chưa? share cho ae học tập.
    mình google hoài mà không ra, ae chỉ giúp mình với, xin cảm ơn


    "mình cũng gặp vấn đề này khi chạy câu lệnh query trong access
    query này tạo trong access, có chứa hàm tự định nghĩa trong module của access

    query này chạy trong access thì OK
    nhưng từ ứng dụng khác, dùng ADO kết nối với file access này, rồi chạy query đó thì báo lỗi"

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •