2009-11-16 84 views
3

我正在使用SQLite的ADO.net提供程序。我想引導一些SQLite的「特性」,比如允許一個字符串在一個整數字段中,並允許在varchar(n)類型的字段中長度大於n的字符串。實現這種驗證的最佳方式是什麼?存儲過程?觸發?我正在尋找一種適用於任何數據庫而不僅僅是我的數據庫模式的通用解決方案。什麼是爲SQLite編寫驗證圖層的最佳方式

+0

在「企業」環境中,您提出的建議將被視爲錯誤,而不是功能。 – 2009-11-16 15:51:14

+0

這就是爲什麼要引用功能。看看這裏http://www.sqlite.org/faq.html#q3 – Raminder 2009-11-16 15:52:52

+0

你可以修改ADO.NET提供者嗎? – 2009-11-16 15:58:42

回答

5

您可以添加列約束。

create table example 
( 
    age integer not null check (typeof(age)='integer'), 
    name text not null check (length(name) between 1 and 100), 
    salary integer check (salary is null or typeof(salary)='integer') 
) 
1

我個人的經驗是,你擔心的是幾乎從來沒有問題。當它是,這個問題是由於嚴重錯誤的代碼(插入mothersmaidenname到年齡或某事)。保持「不成問題」的最好方法是擁有(並使用)有效抽象數據庫的良好數據訪問層。

相關問題