Chủ Nhật, 20 tháng 11, 2011

Tự động xuống dòng khi chuỗi quá dài trong html

Thường thường khi ta đặt 1 chuỗi quá dài trong 1 thẻ html có kích thước cố định nào đó, nếu chuỗi có ngắt khoảng trắng từng từ thì trình duyệt sẽ tự động xuống hàng khi độ dài của chuỗi vượt quá kích thước của thẻ html
Trong trường hợp chuỗi kí tự viết liền nhau không có ngắt từ thì chuỗi sẽ bị vượt ra ngoài thẻ html.
Những người mới viết web người ta thường ít chú ý đến điều này vì khi test chuỗi nhập vào hợp lệ. Nếu người dùng nhập 1 đoạn liên tục nhau và không có khoảng trắng thì khi hiển thị lên sẽ bị vượt ra ngoài và layout sẽ bị bể.

Trường hợp nếu bạn muốn chuỗi vẫn nằm gọn trong thẻ html thì cần thêm thuộc tính style='word-wrap:break-word; ' , lúc này chuỗi sẽ tự động xuống dòng khi kích thước vượt quá kích thước của thẻ html.
Chú ý : mặc định nếu chuỗi bao gồm các từ ngắn có ngắt khoảng trắng thì chuỗi sẽ tự động xuống dòng, chỉ với trường hợp chuỗi nhập vào là 1 chuỗi liền nhau không có khoảng trắng  ngắt từ (thì sẽ bị hiểu là 1 từ) ta mới phải dùng cách này. Tuy nhiên cách tốt nhất khi design ta lên thêm thuộc tính đó vào vì không thể biết trước được người dùng sẽ nhập cái gì.

Thứ Sáu, 18 tháng 11, 2011

Cập nhập - Đưa dữ liệu từ Table này sang Table khác

 Đưa dữ liệu từ bảng A sang bảng B
Insert A(col1,col2)
Select col1,col2 from B

Cập nhập dữ liệu bảng A từ bảng B
Update a set a.Col= b.Col from A a join B b on a.JoinCondition = b.JoinCondition

Trộn 2 bảng lại với nhau:
MERGE INTO Target AS C -- Target
USING Source AS B -- Source
ON C.JoinCondition = B.JoinCondition
WHEN NOT MATCHED and THEN -- Add missing
INSERT (col1,col2,…)
VALUES (B.col1,B.col2,…);
WHEN MATCH THEN
        UPDATE SET C.col = B.col
WHEN SOURCE NOT MATCHED THEN -- Delete missing from source
DELETE;

Thứ Năm, 10 tháng 11, 2011

Cách viết Stored Procedure Phân Trang trong MS Sql Server

Giới thiệu với các bạn cách phân trang dữ liệu trong Sql server:

CREATE PROCEDURE [spPhanTrang]
@currPage int,-- trang hiện tại
@recodperpage int -- số dòng trên 1 trang
AS
Begin
    Begin
    -- lấy dữ liệu và chỉ số dòng (row) của nó
    WITH Temp AS
    (
    SELECT ROW_NUMBER()

    -- ColumnName là tên của các cột cần lấy
    OVER(ORDER BY Tên cột muốn Order ) AS Row, ColumnName

    FROM TableName -- tên của bảng cần lấy dữ liệu

    )

    -- lấy các dòng có chỉ số row phù hợp các các tiêu chí phân trang
    Select * From Temp
    Where Row Between (@currPage - 1)*@recodperpage+1 AND @currPage*@recodperpage
    END
END

Phân trang sử dụng OFFSET/ FETCH trong SQL Server 2012