2014-03-13 24 views
0

我有一個開放的OdbcConnection,我試圖寫入數據庫使用OdbcCommand,我想驗證數據庫我插入數據前是否只讀。如何驗證OdbcConnection是否只讀?

我可以使用try和catch,但我希望有更好的解決方案。

在此先感謝。

OdbcConnection con = new OdbcConnection("DSN=SERVER1;UID=User;PWD=User"); 
try 
{  
    con.Open(); 
    OdbcCommand cmd = con.CreateCommand(); 
    cmd.CommandText = "INSERT INTO table1 (NAME, AGE) VALUES ('Test', 100)"; 
    cmd.ExecuteNonQuery(); 
} 
catch(Exception e) 
{ 
    Console.WriteLine(e.Message); 
} 
finally 
{ 
    con.Close() 
} 

下面是當數據庫是隻讀的輸出:

ERROR [HY000] SOLID數據庫錯誤10013:事務是隻讀的

+2

這取決於數據庫。對於SQL Server,http://stackoverflow.com/q/2930251/11683。 – GSerg

+0

所以問題不是odbcconnection只讀,而是數據庫表只讀? –

+0

Paul Zahra - 這就是我想知道的。我只是想我可以從odbcconnection中獲取信息:) – amkleist

回答

0

對於SQL Server,你可以使用: 信息存儲在sys.databases中。

SELECT name, is_read_only 
FROM sys.databases 
WHERE name = 'MyDBNAme' 
GO 

- 當數據庫設置爲只讀模式時,在is_read_only中返回1。

對於oracle db你可以使用OPEN_MODE屬性來檢查。

+0

該解決方案對我來說不起作用,不幸:( – amkleist