Hi all,
Hiện tại, customer yêu cầu input 1 câu lệnh SQL từ file. Execute câu SQL đó để lấy data từ SPList & output ra file CSV. (Nhưng chỉ execute câu sql bình thường, không sử dụng SPQuery)
Ví dụ:
Mình có 2 SPList: Product và Supplier
Câu lệnh SQL input vào như sau:
Select *
From Product p, Supplier s
Where p.SupplierID = s.ID and s.Name='XYZ'
App của mình phải execute câu query này và output kết quả ra CSV file.
Ai có idea gì thì giúp mình với!
Cảm ơn nhiều! :-)
Thao Nguyen.
Nếu truy vấn SharePoint List sử dụng SQL, thì chúng ta phải Query trực tiếp vào database của SharePoint rồi.
Thông thường thì sử dụng SPQuery hoặc là LINQ để truy vấn sẽ tiện hơn.
basquang™ blog
http://basquang.spaces.live.com
Thanks anh! :)
-> Anh có thể nói cụ thể hơn được không? Query trực tiếp ntn và ví dụ như em nêu bên trên thì có thể làm được không?
-> Đúng là dùng SPQuery & LINQ tiện lợi hơn, nhưng ko dùng được theo yêu cầu đã nêu.
Còn ai có cao kiến gì ko vậy?
Nếu pass thẳng câu lệnh như trên để truy vấn thì chắc chắn là không thực hiện được. Bởi vì, SharePoint 2007 sử dụng AllUserData để lưu toàn bộ nội dung của List và Documents Library. Do đó ko có Table nào là Product, trong Database cả. SharePoint cũng không Mapping 1:1 giữa SPList và Table. Do đó, nếu muốn query data sử dụng câu lệnh trên thì chỉ có cách là chuyển đổi sang câu truy vấn phù hợp (SPQuery, LINQ, SQL)
Vd: Select * FROM AllUserData Where ListID = "[GUID]"...Với GUID là ListId của Product chẳng hạn.
Hope this help!
Cảm ơn anh Quang rất nhiều :-)
Chắc chỉ có cách chuyển đổi sang câu truy vấn phù hợp hơn thôi :(
Em tìm được 2 link rất hữu ích để giải quyết vấn đề trên. Share với mọi người :-)
Part1: http://www.sharepointkings.com/2008/07/run-sql-queries-and-fetch-list-data.html
Part2: http://www.sharepointkings.com/2008/07/run-sql-queries-and-fetch-list-data_10.html
Theo quan điển của tôi, để truy xuất data từ SharePoint, trừ cho những tác vụ đặc biệt, không nên sử dụng SQL để lấy data.
1. Lí do:
- Trong trường hợp đơn giản nhất , MS sẽ change name của table thì application của bạn sẽ như thế nào ?
2. Giải pháp :
- Object Model
- Caml Query
Một phong cách trả lời quá tồi tệ, ích kỷ và thiếu chuyên nghiệp. Trả lời nửa chừng, hic. Ko biết thằng cha này là thằng nào nhưng lần sau trả lời thế này thì nín luôn đi nhé.