• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Unicode SQL

Chuyên mục thảo luận các vấn đề liên quan đến ứng dụng quản lý và cơ sở dữ liệu

Điều hành viên: Điều hành

thanhvu06vl
Thành viên chính thức
Thành viên chính thức
Bài viết: 47
Ngày tham gia: T.Ba 08/04/2008 12:41 pm

Unicode SQL

Gửi bàigửi bởi thanhvu06vl » T.Tư 19/09/2012 8:23 am

Mình có thắc mắc như vầy mong các bạn chỉ giúp
- có textbox unicode - khi load dữ liệu từ SQL 2005 ( dữ liệu là unicode ) vào textbox thì textbox nó hiện lên đúng.
- nay mình muốn nhập dữ liệu từ textbox để ghi vào SQL , khi mở SQL lên xem thì nó sai font chữ:
( dữ liệu ở SQL mình khai báo kiểu nvarchar ), mong các bạn chỉ giúp


st = "INSERT INTO tblhanh(fhanh) VALUES('" & "'n'" & Trim(txtTitle.Text) '" )"
cnsql.Execute st



FlyingFox
Guru
Guru
Bài viết: 811
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 322 time

Re: Unicode SQL

Gửi bàigửi bởi FlyingFox » T.Tư 19/09/2012 10:07 am

Nên viết lại là st = "INSERT INTO tblhanh(fhanh) VALUES(" & "N'" & Trim(txtTitle.Text) '" )"

thanhvu06vl
Thành viên chính thức
Thành viên chính thức
Bài viết: 47
Ngày tham gia: T.Ba 08/04/2008 12:41 pm

Re: Unicode SQL

Gửi bàigửi bởi thanhvu06vl » T.Tư 19/09/2012 11:32 am

Xin cảm ơn bạn. Nhưng khi mình kiểm dữ liệu ở SQL thì nó ghi lại cũng không đúng, nên chương trình của mình trong VB6 cũng không hiện lên đúng.
dữ liệu kiểu nvarchar , nếu bạn biết cách nào khắc phục xin chỉ dùm. Cảm ơn nhiều

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Unicode SQL

Gửi bàigửi bởi xuanha » T.Tư 19/09/2012 11:34 am

thanhvu06vl đã viết:Mình có thắc mắc như vầy mong các bạn chỉ giúp
- có textbox unicode - khi load dữ liệu từ SQL 2005 ( dữ liệu là unicode ) vào textbox thì textbox nó hiện lên đúng.
- nay mình muốn nhập dữ liệu từ textbox để ghi vào SQL , khi mở SQL lên xem thì nó sai font chữ:
( dữ liệu ở SQL mình khai báo kiểu nvarchar ), mong các bạn chỉ giúp


st = "INSERT INTO tblhanh(fhanh) VALUES('" & "'n'" & Trim(txtTitle.Text) '" )"
cnsql.Execute st


Viết chính xác như sau
st = "INSERT INTO tblhanh(fhanh) VALUES (N'"& Trim(txtTitle.Text) & "')"
cnsql.Execute st
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

thanhvu06vl
Thành viên chính thức
Thành viên chính thức
Bài viết: 47
Ngày tham gia: T.Ba 08/04/2008 12:41 pm

Re: Unicode SQL

Gửi bàigửi bởi thanhvu06vl » T.Tư 19/09/2012 8:08 pm

Xin cảm ơn. các bạn nhưng nó vẫn không cho ra kết quả là Unicode được ( mình lập trình VB6 )
Nếu bạn nào biết cách khác xin chỉ dùm. cảm ơn nhiều

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Unicode SQL

Gửi bàigửi bởi xuanha » T.Tư 19/09/2012 8:33 pm

Textbox bạn dùng có hỗ trợ Unicode không?
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

thanhvu06vl
Thành viên chính thức
Thành viên chính thức
Bài viết: 47
Ngày tham gia: T.Ba 08/04/2008 12:41 pm

Re: Unicode SQL

Gửi bàigửi bởi thanhvu06vl » T.Năm 20/09/2012 1:40 pm

Có bạn ạ. Từ SQL mình nhập font Unicode thì qua textbox nó hiện lên mà.
Mình làm theo các cách trên thì khi dữ liệu được ghi vào SQL nó không có chữ N ở đầu của chuổi dử liệu cần nhập thì đúng. không biết trong SQL mình có viết được các hàm gì hỗ trợ hay không

Hình đại diện của người dùng
dazzlingvit
Guru
Guru
Bài viết: 960
Ngày tham gia: T.Ba 18/01/2011 10:21 am
Đến từ: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 time
Been thanked: 112 time
Liên hệ:

Re: Unicode SQL

Gửi bàigửi bởi dazzlingvit » T.Năm 20/09/2012 8:03 pm

1. Kiểu dữ liệu trong MS SQL phải có chữ n. Ví dụ: nvarchar.
2. Khi thực hiện truy vấn phải có chữ N trước xâu. Ví dụ: SELECT * FROM users WHERE name = N"xxx"
3. Chương trình phải hiển thị được unicode :D
Dazzling V.I.T
Hãy gọi tôi là vịt :)

boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 time

Re: Unicode SQL

Gửi bàigửi bởi boy1234 » T.Bảy 22/09/2012 6:28 pm

Bỏ chữ N đi nhé! Chữ N chỉ dùng khi viết 1 chuỗi Unicode trực tiếp trong câu truy vấn. Bạn nên tập viết store và truyền tham biến.

Ví dụ:

- Trong SQL ta viết:
  1. CREATE PROC qry_InsertLoaihang @MaLoaiHang nvarchar(10), @IDPhanLoai nvarchar(5), @TenHang nvarchar(250),
  2.                                                  @Quicach nvarchar(50), @Dvt nvarchar(10)
  3. AS
  4. BEGIN
  5.     INSERT LoaiHang(MaLoaiHang, IDPhanLoai, TenLoaiHang, Quicach, Dvt)
  6.         VALUES(@MaLoaiHang, @IDPhanLoai, @TenLoaiHang, @Quicach, @Dvt)
  7. END
  8.  


Và trong VB6:
  1. Connect
  2.             With cmd
  3.                 .ActiveConnection = cn
  4.                 .CommandType = adCmdStoredProc
  5.                 .CommandText = "qry_InsertLoaihang"
  6.                 .Parameters.Append .CreateParameter("@Maloaihang", adWChar, adParamInput, 255, txtMaloaihang.Text)
  7.                 .Parameters.Append .CreateParameter("@IDPhanloai", adWChar, adParamInput, 255, txtIDPhanloai.Text)
  8.                 .Parameters.Append .CreateParameter("@Tenhang", adWChar, adParamInput, 255, txtTenhang.Text)
  9.                 .Parameters.Append .CreateParameter("@Quicach", adWChar, adParamInput, 255, txtQuicach.Text)
  10.                 .Parameters.Append .CreateParameter("@Dvt", adWChar, adParamInput, 255, txtDvt.Text)
  11.                 .Execute
  12.             End With
  13. CloseConnect
  14.  
Dạo này nghiện honda SS50

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4762
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Unicode SQL

Gửi bàigửi bởi truongphu » T.Bảy 22/09/2012 7:43 pm

Đum!
Xin lỗi, buộc miệng vì tôi đang theo dõi chủ đề nầy!

Câu hỏi: Unicode SQL?
Trả lời:
FlyingFox đã viết:gửi bởi FlyingFox

xuanha đã viết:gửi bởi xuanha

dazzlingvit đã viết:gửi bởi dazzlingvit


và ngay cả tôi, xem các bạn trên trả lời là chuẩn!
(Tuy nhiên tôi không có điều kiện cài thêm, ngoài truy vấn access nên không tham gia)

Mà:
thanhvu06vl đã viết:Xin cảm ơn. các bạn nhưng nó vẫn không cho ra kết quả là Unicode được ( mình lập trình VB6


Ai mà không bối rối? (:|

Thế nhưng, có Hiệp sĩ xuất hiện và rút gươm dõng dạc:
boy1234 đã viết:Bỏ chữ N đi nhé! Chữ N chỉ dùng khi viết 1 chuỗi Unicode trực tiếp trong câu truy vấn. Bạn nên tập viết store và truyền tham biến.


Đang chờ chủ đề tài áp dụng và trả lời (kết quả)

Dù sao, cũng hoan hô boy1234, có lẽ là ngề ngiệp, bạn boy1234 tiến nhanh quá
=D>
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

thanhvu06vl
Thành viên chính thức
Thành viên chính thức
Bài viết: 47
Ngày tham gia: T.Ba 08/04/2008 12:41 pm

Re: Unicode SQL

Gửi bàigửi bởi thanhvu06vl » T.Ba 09/10/2012 9:56 pm

Xin cảm ơn các bạn. và Bác Truongphu đã chỉ giáo.
VB6 kết nối với SQL 2005 và hỗ trợ UNICODE
điều kiện textbox hỗ trợ UNICODE
st = "INSERT INTO tblbaiviet(fTitle) VALUES(N'" & Trim(txtTitle.Text) & "'' )

Tuy nhiên mình còn gặp khó khăn mong các bạn chỉ giúp.
Khi dữ liệu tìm kiếm với Textbox là UNICODE , nếu là từ không có dấu tiếng Việt ( ví dụ như : ta , nam ) thì chương trình mình sẽ tìm ra được,
nếu mình nhập từ có dấu tiếng Việt như ( cộng hòa , ở đâu,.. ) thì chương trình không tìm dữ liệu ra được
( nếu font VNI-Times , thì nó sẽ tìm ra được tất cả các từ cho dù là có dấu hay không dấu )
- Mình nghĩ cũng có thể là thêm ký tự N vào trước biến cần tìm nhưng khi chương trình chạy thì nó không ra kết quả, mong các bạn chì dùm.

StrSQL = "SELECT * FROM tblbaiviet fTitle " & "WHERE fTitle LIKE '%" & Replace$(StrSearch, "'", "''") & "%' ORDER BY fTitle ASC"

boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 time

Re: Unicode SQL

Gửi bàigửi bởi boy1234 » T.Năm 11/10/2012 7:04 am

Bạn dùng theo câu trúc câu sql này xem thử nhé (viết bằng C# tìm vẫn ra). Thay dấu + bằng & :D

  1. sql = "SELECT * FROM sanpham WHERE MoTa like N'%" + keyword + "%'";
  2.  
Dạo này nghiện honda SS50


Quay về “Ứng dụng Quản lý và Cơ sở dữ liệu”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách