Sie befinden sich aktuell in den Ralf Reinartz - Langerwehe: Blog für VB.NET, SQL & DEBIAN Blog-Archiven für den folgenden Tag 28.10.2007.
28.10.2007 von rreinartz.
Beim SQL Server kann man die Leistung der Commands steigern:
Bei fast jeder gespeicherten Prozedur sollte am Anfang SET NOCOUNT ON gesetzt sein. Es zeichnet einen guten Programmierstil aus, am Ende SET NOCOUNT OFF zu setzen. [Durch SET NOCOUNT ON wird verhindert, dass SQL Server für jede Anweisung in einer gespeicherten Prozedur DONE_IN_PROC-Meldungen an den Client sendet. – Hrsg.]. Dieser Standard gilt auch für Trigger.
Geschrieben in MS-SQL Server 2000 | Drucken | Keine Kommentare »
28.10.2007 von rreinartz.
Problem with Constants in Structure
Folgende Struktur ist gegeben:
Public Structure pagingStructure1
Public Const itemsPerPage As Integer = 100
Public totalItems As Integer
Public currentPage As Integer
Public totalPageCount As Integer
End Structure
Im Hauptprogramm verursacht die ROT markierte Zeile einen Fehler:(Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated)
Public Shared Function getPagingObject()As pagingStructure1
Dim oSqlCommand As New SqlCommand(sqlStr)
oSqlCommand.Connection = getConnection()
Dim ps As pagingStructure1
ps.totalItems = CInt(oSqlCommand.ExecuteScalar())
ps.totalPageCount = ps.totalItems \ ps.itemsPerPage
oSqlCommand.Connection.Close()
oSqlCommand.Connection.Dispose()
Return ps
End Function
Wenn man allerdings über den namespace auf die Kostante zugreift, geht es:
ps.totalPageCount = ps.totalItems \ mdt.pagingStructure1.itemsPerPage
Da ich das aber stilistisch nicht so gut finde, habe ich in der Deklaration eine ReadOnly-Property eingebaut:
Public Structure pagingStructure1
‘Public Const itemsPerPage As Integer = 100
Public totalItems As Integer
Public currentPage As Integer
Public totalPageCount As Integer
Friend ReadOnly Property itemsPerPage() As Integer
Get
Return 100
End Get
End Property
End Structure
Damit funktioniert jetzt auch der direkte Zugriff (oben ROT markiert)
Eine Erklärung dafür habe ich nicht, in einem MS-Forum habe ich gelesen das es ein VS 2005 Bug sein soll, kann das zum jetzigen Zeitpunkt weder bestätigen, noch dementieren. Wäre gut wenn jemand hierzu eine Referenz oder eine Erklärung posten könnte.
Geschrieben in VB.NET | Drucken | Keine Kommentare »