2013-03-29 8 views
5

Ich habe den folgenden Code:Fehler beim Versuch, SQL von innen SQL CLR ausführen

[SqlFunction(DataAccess = DataAccessKind.Read, SystemDataAccess = SystemDataAccessKind.Read)] 
    public static int GetInt() 
    { 
     int retValue = 0; 
     using (SqlConnection conn = new SqlConnection("context connection = true")) 
     { 
      conn.Open(); 
      SqlCommand cmd = conn.CreateCommand(); 
      cmd.CommandText = "select MyInt from SomeTable"; 
      object timeOut = cmd.ExecuteReader(); // <- error happen here 

     } 
     return retValue; 

    } 

ich die folgende Ausnahme

cmd.ExecuteReader(); 

in

erhalten { "Diese Aussage hat versucht, auf Daten zuzugreifen, deren Zugriff ist durch die Baugruppe eingeschränkt. "}

+0

das ist kein Problem mehr, ich habe es gelöst! – Pacman

Antwort

6

Ich musste DataAccess = DataAccess.Read t hinzufügen o das Funktionsattribut, um das zu tun.

6

Als eine Randnotiz, wenn Sie versuchen, auf temporäre Tabellen zuzugreifen, die mit # erstellt wurden, z. B. #tmp, müssen Sie auch SystemDataAccess = SystemDataAccess.Read eingeben. Ein anderer Weg wäre ein gemeinsamer Tabellenausdruck, um Ihre Daten zu erhalten.

Verwandte Themen