Monday, July 30, 2012

The name 'components' is already used by another object

Windows Forms Designer Fehlermeldung: The name 'components' is already used by another object Ursache: doppelte Zeile this.components = new System.ComponentModel.Container(); in private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container(); einfach löschen dann gehts wieder

Sunday, July 22, 2012

windows form textbox.text threadsicher setzten

/// used To set Text Box Threadsave (Invoked by this MoneyManagerForm) /// /// Textbox to set text /// text is set to Textbox private delegate void DelegateSetTbText(TextBox tb, string s); /// threadsave set of Text of Textbox /// /// Text of this Textbox is set /// new text for textbox private void SetText(TextBox tb, string text) { // InvokeRequired required compares the thread ID of the // calling thread to the thread ID of the creating thread. // If these threads are different, it returns true. if (this.InvokeRequired) { DelegateSetTbText d = new DelegateSetTbText(SetText); this.Invoke(d, new object[] { tb, text }); } else { tb.Text = text; tb.Enabled = true; } }

Monday, July 16, 2012

Fehler HRESULT 0x8007052E

Bei Reporting Services trat nach Passwortänderung des WindowsDienst- und Execution Kontos folgender Fehler auf: Fehler bei der Berichtsverarbeitung. (rsProcessingAborted) Der Berichtsserver-Windows-Dienst 'ReportServer' wird nicht ausgeführt. Dieser Dienst muss ausgeführt werden, damit der Berichtsserver verwendet werden kann. (rsReportServerServiceUnavailable) => Aktualisierung des Paswortes des WIndows Dienst SqlServer Reporting Services und start des Dienstes hatte zum Erfolg, dass der Reportmanager wieder bedienbar war (Navigation durch die Ordner, Eigenschaften von Berichten änderun usw. ging wieder) aber beim Ausführen des Reports trat folgender Fehler auf: Fehler bei der Anmeldung. (rsLogonFailed) Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort. (Ausnahme von HRESULT: 0x8007052E) dieser konnte durch aktualisierung mit dem neuen Passwort im Konfigurationmanager unter Ausführungskonto (ganz unten links) behoben werden

Monday, July 09, 2012

sql reporting services slow startup

Der erste Aufruf von Reporting Services ist meist sehr langsam, weil die Seite inwzischen recyceld wurde. Man kann das Recycle Intervall verlängern, sodass bei wenig frequentierten Berichtsservern trotzdem ein schneller Respond erfolgt: In C:\Programme\Microsoft SQL Server\MSRS10.CRM\Reporting Services\ReportServer\rsreportserver.config 72000 von 720 erhöhen

Wednesday, July 04, 2012

sql server logins dbuser connection

Auf Sql Server Ebene gibt es Logins (die auch einer WIndows Gruppe, einem WIndowws User zugeordnet sein können) - auf Datenbankebene gibt es die DAtenbank Rollen und Benutzer. Damit ein Login auf eine Datenbank Zugreifen kann muß es mit einem Datenbankuser dort verbunden sein. Über das SSMS kann bei den Eigenschaften des SqlServerLogins unter Usermapping ein Login mit einer Datenbank verbunden werden, indem dort ein DbUser mit demselben Namen wie das sqlserverLogin erzeugt wird. Gibt es diesen User schon, erfolgt ein Fehler und man muß den User und das Login mittels der Stored Procedure sp_change_users_login verbinden: z.b. exec sp_change_users_login 'Auto_Fix','DbUserName' exec sp_change_users_login 'Report' listet die unverbundenen DB User auf. Um festzustellen welcehr Dbuser mit welchem Login verbunden ist: select u.name as dbusername,l.name as loginname from sys.sysusers u join sys.syslogins l on l.sid=u.sid

Tuesday, July 03, 2012

typed Dataset Contrain Exception

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. Unfortunatly, there is no hint which Constraint(s) causes the exeption => try 1) set Allwo DBNull to true 2) Length of String ok ? (Set to max) 3) double key ? or try to load same rowset into a untyped dataset and copy each row and each field into the typed one

Friday, June 22, 2012

Click Once empty Error Message

if you try running Setup from Click Once and an empty errorbox appears, delete the suo file of your solution and publish again

Click Once Prerequisites

Click Once Prerequisites are located in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages there you can add your own packeges

Tuesday, June 12, 2012

Auto Update Statistics Async

Beim Synchronen Update, werden sobald der Query Optimizer das Erignis Statistiken veraltert wirft, dieseaktualisiert und erst danach die Query ausgeführt. Beim Asynchronen AutoUpdate wird die Query noch mit den veralterten Stat. Ausgeführt, im Hintergrund aber ein Task zum Updaten derselben gestartet, und wenn dieser fertig sit, werden alle Queries mit den neuen Statistiken geliefert.

Thursday, May 31, 2012

Click Once adding files to publish / missing .confing.deploy

1) to add Files for publishing: every File in Project with Property Build Action Content is added 2) app.config -> app.config.deploy but the setup says missing *.exe.config.deploy => add a *.exe.config file and the Pubsliher makes a .deploy from it

Friday, May 25, 2012

regex in Vs und SSMS

Im Visual Studio oder im Sql Management Studio (SSMS) muß man statt den normalen regex quantifiers {n} ^n verwenden

Friday, April 13, 2012

oracle psql <-> sqlserver tsql

sql sever - oracle

sql severoracle
IsNull(feld,NullErsetzWert)NVL(Fld,NullReplWert)
select * into dest from sourcecreate dest as select * from source
select top 10 * from xselect * from x where rownum<=10

c#<->vb.net







c#vb.net
using namespaceimports namespace
string s="Hallo" dim s as String="Hallo"
thisme
And, or kurzschluss auswertungandalso, orelse

Wednesday, January 25, 2012

Trigger on all server

alter TRIGGER [trgDatabaseCreated]
ON ALL SERVER
with execute as 'sa'
FOR CREATE_DATABASE

AS
declare @data XML
declare @message XML

SET @data=EVENTDATA()



declare @msg as nvarchar(max)
set @msg = 'Databasecreated' + @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') + @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)')

INSERT INTO [InterneVerwaltung].[dbo].[AllgLog] ([name],[description],xmldesc)
VALUES ('trgDatabaseCreated',@msg,@data)

--INSERT INTO InterneVerwaltung.dbo.AllgLog
--(DB_User,Event,TSQL)
--VALUES
--(GETDATE(),
--CONVERT(nvarchar(100),CURRENT_USER),
--@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),
--@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)'))

exec msdb.dbo.sysmail_start_sp

Execute msdb.dbo.sp_send_dbmail
@profile_name='sqlcl1DbMail',
@recipients='erich.geierlehner@ecs.steyr.com',
@subject='databasewascreated',
@body=@msg,
@query='select top 1 * from [InterneVerwaltung].[dbo].[AllgLog] with (NOLOCK) order by created DESC';

Thursday, August 11, 2011

asp.net Apps tracen


in der Web.config im Abschnitt system.web folgenden xml Tag (spitze Klammern hinzu)

trace enabled="true" pageOutput="true" requestLimit="20" traceMode="SortByTime" localOnly="true"

einfügen, an jeder Seite sollte nun ein Trace Abschnitt angehängt werden, eine Übersicht über alle Traces bekommt man indem man im hauptdir der Anwendung

trace.axd

aufruft (die gibt es physikalisch nicht, wird aber von asp.net für jede Anwendung bereitgestellt)

Monday, August 08, 2011

check sql agent running with tsql

if 0<(select count(*) from sysprocesses where program_name like 'SQLAgent%')
begin
print 'sql agent is running'
end
else
begin
print 'sql agent is not running'
end

Friday, August 05, 2011

Datagridview auf Bindingsource an Datatable

Ereignisreihenfolge beim Hinzufügen einer neuen Zeile:
1) Bindingsource_ADddingNEw
2) Datatable_TableNewRow
3) Datagridview_UserAddedRow

wenn jemand im Datagridview auf die neue Zeile klickt, wird nicht unbedingt schon eine neue Row hinzugefügt, erst wenn jemand verscuht einen Wert einzutragen => mit Bindingsource.AddNEw() kann man händisch eine neue Row hinzufügen

Saturday, July 30, 2011

LINQ und Datatables

allgemeine (untypisierte) Datatable
var res = from x in dt.AsEnumerable() select x.Field(c.ColumnName);

join zweier typisierter Datasets:
var rsInner = from s in dtSource
join c in dtComp on s.FullName equals c.FullName
where s.Nullable!=c.Nullable || s.MaxLength!=c.MaxLength || s.Type!=c.Type
select new { s.TableName, s.ColumnName,
s.Nullable, cNullAble = c.Nullable,
s.MaxLength, cMaxL = c.MaxLength,
s.Type, cType = c.Type};

Tuesday, July 26, 2011

typed Dataset Null Werte

Um Null Werte abzufragen verwendet man die IsXXXNull() Methode der typed Datarow Instanzen, um Null Werte zu schreiben die SetXXXNull() Methode , wobei XXX der Feldname ist.

z.b.:

DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();
drTextNm.ChildId = dr.Id;
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];
drTextNm.Created = DateTime.UtcNow;
drTextNm.CreatedBy = Data.WinUserName;
drTextNm.SetValidUntilNull();
drTextNm.IsValidUntilNull();

KeyCode zum Abfragen Return / Enter

private void cbBranche_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{

}
}