PDA

View Full Version : Search Unicode trong SQL Server 2000



cithp
23-07-2004, 12:02
Xin các bác.
Tại sao mình dùng câu SQL để Search thông tin có chuổi định dạng là Unicode
nhưng không hiển thị được kết quả. Mình đã cho kiểu dữ liệu là nvarchar hoặc nchar nhưng cũng vậy.
Mình có 1 table sau: NhanVien(Hoten,diachi)
Chèn vào mẫu tin đều là Unicode
Nếu mình dùng câu SQL:
SELECT hoten FROM Nhanvien WHERE hoten='nguyễn'.
Trong Access thì ra kết quả tốt còn SQL Server 2000 thì không tìm thấy.
Xin các bác chỉ mình với.

cithp
23-07-2004, 12:12
Các bác nào biết xin cứu mình với.
Nếu trong mạng cục hộ mình có nhiều máy Database Server thì mình dùng IP,tên db,UserName,Password truy xuất dữ liệu thì OK( dùng dotNet).
Nhưng nếu mình đưa lên Internet thì sau? Mình muốn truy cập CSDL của máy đó dùng IP,tên DB, UserName,Password có được không?
Còn mình muốn máy mình làm 1 Database Server thì mình cần đăng ký với ai?

InfernoVN
24-07-2004, 00:02
1.
Dùng Database Server thì chẳng cần phải "đăng ký" với ai cả, miễn là bạn có một REAL IP (IP thực) - hoặc 1 line ADSL rồi dùng Dynamic DNS thì "vô tư".

2.
Nếu đã có IP thực thì bạn vẫn có thể viết chương trình để kết nối từ Internet vào CSDL của bạn được (dựa trên IP Server, Username, Password).

Tuy nhiên, đó chỉ là phương pháp lý thuyết (dùng để giảng dạy cho sinh viên là chính). Trong thực tế, chẳng có Application nào truy xuất trực tiếp vào Database Server cả. Lý do? Không bảo mật, và không có tính uyển chuyển. Vì nếu có ai đó "nghịch" tí, debug được const variable IP Server, Username, Password thì coi như... ngủm củ tỏi.

Thực tế thông thường người ta sẽ dùng mô hình sau để truy cập CSDL từ internet

+ Apps (của end-user) ====> Process Server ====> Database Server

Theo mô hình này thì tất cả mọi thao tác trên CSDL đều do Process Server thực hiện (từ SELECT, INSERT, DELETE, UPDATE...). Apps của end-user chỉ đơn thuần là gửi các request đến Process Server, và tiếp nhận các response trả về để show ra màn hình cho end-user.

Vì vậy, nếu cần chỉnh sửa policy gì đó của chương trình, người ta chỉ cần sửa trên Process Server, hoặc trong Database Server là OK. Chẳng cần phải build lại Apps cho end-user.

3.
Về Unicode, nếu bạn cần tôi sẽ gửi cho bạn source FUNCTION CONVERT font UNICODE trực tiếp trong SQL Server.

andes
29-07-2004, 15:12
Xin các bác.
Mình có 1 table sau: NhanVien(Hoten,diachi)
Chèn vào mẫu tin đều là Unicode
Nếu mình dùng câu SQL:
SELECT hoten FROM Nhanvien WHERE hoten='nguyễn'.

Thêm N vào trước quotation mark là ok.

SELECT hoten FROM NhanVien WHERE hoten = N'nguyễn';

oj_n
31-07-2004, 15:19
Andres is correct. You would want to preface the value with 'N' to designate it as an Unicode value.